导出的非托管C ++ DLL中找不到DLL

时间:2011-06-13 13:21:36

标签: visual-c++

我有一个非托管C ++ DLL,这是在另一个C#项目中导入的。我在尝试访问其中的第一个方法时遇到“此DLL未找到异常。我在依赖walker中检查了它抱怨”msvcr90d“.I使用。框架3.5在VS 2010中创建的.Net Framework 2.0和C#项目在VS 2008中创建的hac eC ++项目。

有什么方法可以找到我找不到的链接吗?

由于

2 个答案:

答案 0 :(得分:1)

msvcr90d.dll是msvcr90.dll的调试版本...您是否在开发计算机或其他计算机(未安装VS)上遇到此问题?如果您仅在未安装Visual Studio的计算机上遇到此问题,则应该执行发布版本而不是调试版本。

答案 1 :(得分:0)

Dependancy Walker的投诉极有可能产生误导。问题可能与清单有关,但也可能没有。您可以尝试多种选择(可能合并),看看会发生什么:

  1. 在调试C#
  2. 中使用release DLL
  3. 从DLL中删除清单,或者如果实际上缺少清单则放置一个
  4. 将所有需要DLL文件放在C#.exe所在的位置
  5. 检查并仔细检查调试版和发行版DLL之间是否存在差异,除了不同的底层DLL之外。