我有一个程序正在编写program.exe
,它会加载一个dll lib.dll
。当我在调试模式下运行program.exe
时,一切正常。当我尝试在发布模式下运行时出现错误:
The procedure entry point ... could not be located in the dynamic link library lib.dll
。
当我在依赖性walker中打开dll时,会出现具有所有相同奇怪符号的精确函数。我查看了visual studio中的模块窗口,以确保我没有从错误的目录加载dll但事实并非如此。我使用相同的编译器(Visual Studio 2012)编译了dll和exe,因此这也不是问题。可能导致这种情况的原因是什么?
修改
我将lib.dll
转换为静态库,一切正常。我放弃了!
答案 0 :(得分:2)
我遇到了同样的问题,在我的情况下,这是因为我的计算机上安装了两个版本的同一个库。
最后,问题是当我的PATH指向旧的DLL时,我正在将我的程序与新的LIB文件链接。当库版本号未包含在LIB或DLL文件名中时,可以很容易地混合版本。
答案 1 :(得分:0)
在运行发布版本时,尝试在Release版本的属性页面中设置库的路径。