lnk1136 - 无效或损坏的 .lib

lnk1136 - invalid or corrupt .lib

我有个小问题。我得到了一个 dll C 库、一个头文件和调用此 dll 所需的所有其他文件。我试过通过第三方程序调用这个 dll,它正在工作。 但是,当我尝试直接调用它时(加载时动态链接并使用给定的头文件),我总是会收到 mydll.lib.

的链接器错误 1136

使用头文件:

#include "windows.h"
#include "mydll.h"

void main() {
    bool test;
    test = CallDll("MyArg");
}

头文件中的代码如下:

extern "C" bool _stdcall CallDll(char* MyArg);

在加载时使用动态链接:

#include "windows.h"

bool(*CallDll)(char*);
HINSTANCE h = LoadLibrary((LPCSTR)"mydll");

void main() {
    CallDll = (bool(*)(char*))GetProcAddress(h, "CallDll");
    bool test;
    test = CallDll("MyArg");
}

现在我做错了什么?我怀疑 mydll.lib 文件是否损坏,因为如果这是问题所在,我将无法使用第三方程序访问 dll。

嗯,这是一个相当简单的解决方案。

bool(*CallDll)(char*);
HINSTANCE h = LoadLibrary(L"mydll.dll");

void main() {
    CallDll = (bool(*)(char*))GetProcAddress(h, "CallDll");
    bool test;
    test = CallDll((char*)"MyArg");
}

是否需要它...