gpt4 book ai didi

c# - .NET 有时无法加载 DLL

转载 作者:行者123 更新时间:2023-11-30 15:32:25 24 4
gpt4 key购买 nike

我正在使用 Microsoft Visual Studio Express 2012 for Windows Desktop(管理员)

我有一个项目库 FOO.DLL,其中“复制到输出目录”单击为“始终复制”。

大多数时候这个 DLL 加载正确,大家都很高兴。

有时,我会收到一个 System.DllNotFoundException 消息:

Additional information: Unable to load DLL 'FOO.DLL': 
Invalid access to memory location. (Exception from HRESULT: 0x800703E6)

Debug 和 Release 都会出现这个错误。它发生在“干净”之后以及第二次或第八次运行相同的构建之后。

这是 DLL、.NET 运行时或我的 .NET 代码中的错误吗?

最佳答案

Invalid access to memory location. (Exception from HRESULT: 0x800703E6)

当该 DLL 中的代码因 AccessViolation 而失败时,将返回此错误代码。特殊代码,在DLL加载过程中非常关键的时候运行。错误代码位于 DLL 的 DllMain() 入口点中。该异常被吞噬,这是保持 Windows 加载程序稳定所必需的,您所看到的只是它产生的错误代码。

这是一个非常严重的事故,您需要与 DLL 的作者合作才能解决这个问题。您可以调试异常,使用 Debug + Exceptions,勾选 Win32 Exceptions 的 Thrown 复选框。确保 Just My Code 调试已关闭,Tools + Options,Debugging,General。启用非托管调试,项目 + 属性,调试选项卡。抛出异常时调试器停止。如果您没有 DLL 的源代码,那么几乎没有什么可看的,也无能为力来解决问题,这需要作者的帮助。他将希望 Stack Trace 窗口的内容能够解决问题。

关于c# - .NET 有时无法加载 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19186742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com