我正在尝试将 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 时,它不会提供该信息。通过 GNU 编译时是否不能使用 stdcall 或者我做的不对?