c ++ WINAPI通过GetProcAddress调用导出的函数

c++ WINAPI call exported function via GetProcAddress

我试图通过 GetProcAddress 获取 DLL 的函数指针来调用 DLL 的导出函数,但是在调用该函数时应用程序崩溃了。

我使用 dependencywalker 查看导出函数的名称是否正确。从 GetProcAddress 返回的地址不为空。我几乎可以肯定它与调用约定有关,我同时使用了 __cdecl__stdcall 但没有成功。但是我确实想使用 GetProcAdress 而不是 __declspec(dllimport).

DLL #1(调用者)

DLL #2(包含导出函数的 DLL)

//header.h
extern "C" __declspec(dllexport) void init(DWORD size);

//source.cpp
extern "C" __declspec(dllexport) void init(DWORD size) {
    //code
}

你应该保持一致。如果您将指针检索为指向 stdcall 函数的指针 - 它必须在实现中声明为 stdcall

//header.h
extern "C" __declspec(dllexport) void __stdcall init(DWORD size);