nome stdcall desconfigurado usando extern c e dllexport vs definições de módulo (msvc ++)

Eu estava tentando exportar uma função de teste simples para uma dll trabalhar com um aplicativo (fyi: mIRC) que especifica a convenção de chamada como:

int __stdcall test_func(HWND mWnd, HWND aWnd, char *data, char *parms, BOOL show, BOOL nopause)

Agora, para chamar isso do aplicativo, eu usariatest_func mas notei que, devido ao nome desconcertante, não é tão simples quanto eu pensava.

Através de tópicos semelhantes aqui, cheguei ao entendimento de que usarextern "C" em combinação com__declspec (dllexport) é um método equivalente (um pouco) de remover a manipulação de definições de módulo (.def). No entanto, ao usar o método extern / dllexport, minha função (como exemplo) é sempre_test_func @ numbers enquanto o .def removeu todos os erros, conforme necessário para uso com o aplicativo para o qual eu precisava exportar.

Alguém poderia explicar por que isso acontece? Só estou curioso sobre os dois métodos. Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion