“程序入口点...无法找到”在错误的DLL中 [英] “The procedure entry point… could not be located” in the wrong DLL

查看:188
本文介绍了“程序入口点...无法找到”在错误的DLL中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经从Haskell代码创建了一个DLL,我从C ++调用这个DLL。我的应用程序工作正常,当我在Debug模式下运行它在Visual Studio 2010,但当我做一个版本生成并安装它,我得到错误


程序入口点LVSpecData_GetGlob不能位于动态链接库SpectrumMath.dll中。


SpectrumMath.dll是我的Haskell基于DLL。奇怪的是,函数LVSpecData_GetGlob不在那个DLL - 它在另一个DLL链接,并没有关于 DLL或我的应用程序的使用它改变了当我添加了Haskell DLL。 / p>

这个错误消息似乎是说Windows困惑的哪些函数生活在哪些DLL。

解决方案

这看起来像是Visual Studio 2010发布模式中的一个错误(Haskell dll函数不是导入由exe内置的释放模式,因此Haskell dll没有加载,在Debug导入存在,它工作正常)。



同样的exe项目使用Visual Studio 2013 Update 4和Visual Studio 2015 RC工作正常。


I have created a DLL from Haskell code and I am calling this DLL from C++. My application works fine when I run it in Debug mode in Visual Studio 2010, but when I make a Release build and install it, I get the error

The procedure entry point LVSpecData_GetGlob could not be located in the dynamic link library SpectrumMath.dll.

SpectrumMath.dll is my Haskell-based DLL. The weird thing is that the function LVSpecData_GetGlob isn’t in that DLL—it’s in another DLL I link against, and nothing about that DLL or my application’s use of it changed when I added the Haskell DLL.

This error message seems to be saying that Windows is confused about which functions live in which DLLs. What could be going wrong here?

解决方案

This looks to be a bug in Visual Studio 2010 Release mode (Haskell dll functions are not imported by exe built in Release mode hence Haskell dll is not loaded, in Debug imports are present and it works fine).

The same exe project built in Release mode using Visual Studio 2013 Update 4 and Visual Studio 2015 RC works fine.

这篇关于“程序入口点...无法找到”在错误的DLL中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆