我需要在MSVC 2010中的win32控制台应用程序项目中使用库 libMPSSE.dll 。编写代码后,我将dll复制到我的.cpp文件所在的文件夹中。我能够成功编译,但问题是我有链接错误:
libMPSSE.dll:致命错误LNK1107:文件无效或损坏:无法执行 读于0x308
这是dll本身的问题还是dll路径有问题?我们如何将dll添加到项目中?
他们没有提供任何.lib文件。完整代码为here
答案 0 :(得分:2)
这些是链接到DLL的常用步骤:
我的猜测,看看你的错误信息,是在第2步中你将.dll传递给链接器而不是传递.lib文件。
答案 1 :(得分:0)
如前所述,您无法直接使用C链接器链接到.dll文件。 有win32 API可以加载.dll文件并返回指向函数的指针。 通常,.dll文件附带.lib文件包含为您带来此负担的代码,并提供API .dll文件公开。您只需要链接到此.lib文件并将.dll文件放在创建的.exe文件附近。
特别是关于libMPSSE,它在release notes中说你可以将提供的.a文件重命名为.lib文件,以便在Visual Studio中链接到它(项目属性 - >配置属性 - >链接器 - > ;输入)。我尝试了它,它按预期工作。