0%

VS调用动态库调试错误(LNK 1107)

Visual Studio 在调试的过程中常见的错误之一就是LNK1107错误,这种错误的原因有很多,需要结合实际提示来调试。

先贴出错误提示码,大概类似这种:

fatal error LNK1107: 文件无效或损坏: 无法在 0x2B8 处读取

出现的原因:

现在是有一个exe以及其依赖的一些dll文件,我需要运行这个exe来获取结果。于是在VS2015中直接调用了system来运行。本来设置了动态库的路径以及相应的依赖项,但是连接时一直报这个错误,网上查找了说是硬盘格式不相容。

从报错的原因可以看出是文件的编码不一样,因为dll是二进制文件,所以上述说硬盘的格式原因,我认为是有道理的。

解决方法

库文件的路径已经不变,但是在输入的依赖项中,删除这些dll文件,而在调用的文件中利用如下的形式来添加dll文件

#pragma comment(lib, "opencv_core2411.dll")