Опитвам се да добавя конвенция за извикване на stdcall към моя GNU компилиран DLL.
Ето моят код:
typedef void (__stdcall * CTMCashAcceptCallback) (
const struct CTMEventInfo,
const struct CTMAcceptEvent );
Извиква се от тази функция:
LIBCTMCLIENT_FUNC void ctm_add_cash_accept_event_handler(CTMCashAcceptCallback);
където:
#define LIBCTMCLIENT_FUNC LIBCTMCLIENT_C_LINKAGE __declspec(dllexport) __stdcall
Проблемът е, че ми дава тази бележка:
забележка: очаква се „CTMCashAcceptCallback“, но аргументът е от тип „void (*)(const struct CTMEventInfo, const struct CTMAcceptEvent)“
Когато премахна __stdcall или вместо това го заменя с __cdecl, той не дава тази информация. Не е ли възможно да се използва stdcall при компилиране през GNU или може би не го правя правилно?