![](/img/trans.png)
[英]How to target x64 (64 bit) platform while using ActiViz in a .NET C# application (WinForms)
[英]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平台设置的方法。
我的开发计算机是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.