【问题标题】:The procedure entry point could not be found找不到过程入口点
【发布时间】:2014-01-18 04:43:05
【问题描述】:

我有一个正在编写的程序 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 转换为静态库,一切正常。我放弃了!

【问题讨论】:

标签: c++ visual-studio dll


【解决方案1】:

我遇到了同样的问题,就我而言,这是因为我的计算机上安装了同一个库的两个版本。

最后,问题是我将程序链接到新的 LIB 文件,而我的 PATH 指向旧的 DLL。当库版本号不包含在 LIB 或 DLL 文件名中时,很容易混合版本。

【讨论】:

  • 非常感谢您发布此消息!我遇到了同样的问题,您的解决方案解决了它!
【解决方案2】:

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

【讨论】:

  • .lib 文件的路径是在链接器属性页中设置的,问题不是我正确链接的 .lib 文件。问题是 .lib 文件中的函数在 dll 文件中找不到。即使当我在依赖walker中输入dll时,它也在那里。
  • 我能想到的最好的就是这个回复,stackoverflow.com/a/495874/685445。希望对您有所帮助。
猜你喜欢
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多