过程入口点未找到

6
我正在编写一个程序program.exe,它加载了一个dlllib.dll。当我以调试模式运行program.exe时,一切正常。但是当我尝试以发布模式运行时,出现错误:

在动态链接库lib.dll中找不到过程入口点...

当我在依赖项查看器中打开dll时,确切的函数和所有相同的奇怪符号都存在。我查看了Visual Studio的模块窗口,以确保我没有从错误的目录加载dll,但情况并非如此。我使用同一编译器(Visual Studio 2012)编译了dll和exe,因此这也不是问题的原因。这是什么原因引起的呢?

编辑:

我将lib.dll转换为静态库,一切正常。我放弃了!


也许是这个?https://dev59.com/d3LYa4cB1Zd3GeqPbszd?rq=1 - Bret Kuhns
2个回答

3
我遇到了相同的问题,我的情况是由于我在电脑上安装了两个版本的同一个库。
最后,问题在于我的程序链接到新的LIB文件,而我的PATH指向旧的DLL文件。当LIB或DLL文件名中不包含库的版本号时,混淆版本非常容易。

非常感谢您发布这个信息!我遇到了同样的问题,您的解决方案解决了它! - user

0
尝试在 Release 构建的属性页中设置库的路径,当运行一个 Release 构建时。

.lib文件的路径在链接器属性页面中设置,问题不在于我正确地链接了.lib文件。问题在于.dll文件中未找到.lib文件中的函数。即使当我在依赖项查看器中输入dll时,它也存在。 - Benjy Kessler
我能想到的最好的答案是这个回复,https://dev59.com/0XRB5IYBdhLWcg3w1Kn0#495874。希望它有所帮助。 - AquaAsh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接