繁体   English   中英

使用64位dll时C#.Net X64应用程序崩溃

[英]C#.Net X64 Application crash when using 64bit dll

我在运行针对x64的C#应用​​程序(WPF,.Net 4.0,Visual Studio 2010)时遇到问题,并使用64位dll(第三方)。

当我运行带有64位dll(在64位Win7 / WindowsServer2003上)的64位版本时,会出现问题。 应用程序启动正常。 但是,当我在应用程序上单击“开始”按钮时,该应用程序在其中创建线程并开始与dll进行交互,该线程将在第一次调用dll函数时崩溃/停止。 下面是我关闭应用程序时生成的错误。

问题签名:

问题事件名称:APPCRASH

应用程序名称:DelayServer.exe

应用版本:1.0.0.0

应用时间戳:52092104

故障模块名称:KERNELBASE.dll

故障模块版本:6.1.7601.17965

故障模块时间戳:506dcae6

异常代码:e0434352

异常偏移量:000000000000bccd

操作系统版本:6.1.7601.2.1.0.272.7

区域设置ID:2057

附加信息1:7315

附加信息2:
73159f4fb34892aabcc4ba245f14f64e

附加信息3:d5ec

附加信息4:
d5ec134b8e354c23783e48c0e2e572da

我知道,如果EXE与DLL之间不匹配,即EXE为32位,而DLL为64位,则反之亦然。 附件是我的设置的屏幕截图。 我没有找到验证/编辑x64平台设置的方法。

x64项目构建设置屏幕截图

我的开发计算机是Win Vista 32位,并且我已经安装了64位编译器。

我有使用32位dll在32位计算机上正常工作的32位目标应用程序。 当我在64位计算机上运行具有64位dll的64位目标应用程序时,发生崩溃

我尝试了dependencywalker,但是无法进一步扩展以找到任何依赖项。

有人可以帮我吗

非常感谢山姆

我终于解决了问题。

当我使用Microsoft Debug Diagnostic Tool(来自http://www.microsoft.com/en-gb/download/details.aspx?id=26798 )时,故障转储显示加载我的外部dll或其依赖项时出现问题。 然后,我将我的外部dll加载到Dependency Walker( http://dependencywalker.com/ )中,这表明它找不到链接到Microsoft VC ++的依赖项“ msvcp100.dll”。

因此,我安装了Microsoft可再分发软件包(x64),并且我的应用程序不再崩溃。

谢谢大家的帮助...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM