2

我正在将一个 C++ 项目从旧的 Borland 编译器移植到 VisualStudio 2008。这个项目使用了我没有源代码的第三方 DLL,因此我无法重新编译或修改它。DLL 的头文件定义的函数如下:

extern "C" {
void __stdcall Init(int a, int b);
}

但是,当我尝试链接到这个 DLL 时,VisualStudio 说它找不到函数 _Init@8。当我查看 DLL 时,我发现函数名称是 _Init,而不是 _Init@8(似乎早于 Microsoft 的 DLL 将 @8 添加到 stdcall 名称修改)。

我的问题是:如何调用这个 DLL 中的函数?VisualStudio 是否根本不支持这些旧的 DLL,或者是否有我缺少的标志/设置。(我知道我可以使用 LoadLibrary/GetProcAddress 函数在运行时动态调用函数,但不希望这样做。)

4

1 回答 1

0

我没有注意到任何可以告诉我您是在进行 32 位还是 64 位编码的信息。MSDN 提供了一些关于如何基于您没有源代码的 dll 创建导入库的信息。本文用于制作32 位导入库。干杯!

于 2013-01-21T11:41:26.180 回答