【发布时间】:2012-09-09 09:18:30
【问题描述】:
我有一个 c# .net 4 应用程序,使用 vs 2010。 我正在尝试导入一个 c++ dll(基于 vs 2005)。
[DllImport("Card.dll")]
我失败了:
无法加载 DLL 'Card.dll':应用程序无法启动,因为它的并行配置不正确。请查看应用程序事件日志或使用命令行 sxstrace.exe 工具了解更多详细信息。 (HRESULT 异常:0x800736B1)
使用 sxstrace.exe 我得到:
错误:无法解析引用 Microsoft.VC80.DebugMFC,processorArchitecture="x86"
我还发现:
MFC80D.DLL 和 MSVCR80D.DLL 丢失
注意这不是 DebugCRT,因为这个问题是由使用 Debug 编译的 DLL 而不是 Release 引起的。我现在用的是Release编译的dll,问题是DebugMFC。
我已经尝试了任何我可以在网上找到的东西。为了节省时间我会介绍我尝试过的,所以我不会再收到这个建议了:
1- 我已经安装了 Microsoft Visual C++ 2010 Redistributable Package + SP1 + 安全更新
2- 我已经安装了 Microsoft Visual C++ 2008 Redistributable Package
3 - 我已经安装了 Microsoft Visual C++ 2005 Redistributable Package
4 - 我尝试将这个应用程序作为“发布”而不是“调试”运行
5 - 我尝试将 entryPoint 设置为 DllImport
没有帮助。我仍然得到同样的错误。我没有在网上看到任何其他建议,而不是上面列出的建议。 谁能帮帮我?
【问题讨论】:
-
引用:
Please see the application event log。它说什么? -
错误:无法解析引用 Microsoft.VC80.DebugCRT,processorArchitecture="x86"
-
构建您的 C++ DLL 的发布版本,而不是调试版本。
-
我的同事给了我一个新编译的 dll。她说这次是释放。我犯了同样的错误。她是不是做错了什么,这是一个调试版本,还是有其他可能的解释?
-
我没有收到 CRT 消息。我没有注意到。现在是:“无法解析引用 Microsoft.VC80.DebugMFC”
标签: c# c++ visual-studio-2010 dll dllimport