Exportar funções de uma DLL com dllexport
Gostaria de um exemplo simples de exportar uma função de uma DLL do Windows em C +
Gostaria de ver o cabeçalho, o arquivo cpp e o arquivo def (se for absolutamente necessário
Gostaria que o nome exportado fosse não decorado. Eu gostaria de usar a convenção de chamada mais padrão (__stdcall?). Eu gostaria do uso__ declspec (dllexport) e não precisa usar um arquivo DE
Por exemplo
//header
extern "C"
{
__declspec(dllexport) int __stdcall foo(long bar);
}
//cpp
int __stdcall foo(long bar)
{
return 0;
}
Estou tentando evitar que o vinculador adicione sublinhados e / ou números (contagem de bytes?) Ao nom
Eu estou bem em não suportar dllimport e dllexport usando o mesmo cabeçalho. Não quero nenhuma informação sobre a exportação de métodos de classe C ++, apenas funções globais do estilo
ATUALIZA
Não incluindo a convenção de chamada (e usando extern "C") me fornece os nomes de exportação como eu gosto, mas o que isso significa? É qualquer convenção de chamada padrão que eu esteja recebendo o que o pinvoke (.NET), declare (vb6) e GetProcAddress esperariam? (Acho que, para GetProcAddress, isso dependeria do ponteiro de função que o chamador criou
Eu quero que essa DLL seja usada sem um arquivo de cabeçalho, por isso não preciso de muitas definições sofisticadas para tornar o cabeçalho utilizável por um chamado
Estou bem com uma resposta, pois preciso usar um arquivo DE