gpt4 book ai didi

.net - 检测从 .NET 调用的调用 dll 的崩溃

转载 作者:行者123 更新时间:2023-12-03 15:25:22 25 4
gpt4 key购买 nike

我有一些从 .NET 应用程序调用的 native dll (Delphi)。如果 DLL 中发生任何类型的崩溃,整个 .NET 应用程序都会崩溃。如何防止这种情况并确保 .NET 应用程序不会崩溃并识别错误。我不需要来自 native dll 的特定错误反馈(这是不可能的,因为它崩溃了)。但我想在 .NET 日志文件中写入一些内容,例如“xyz.dll 崩溃”。

是否可以从 .NET P/调用(Delphi 或 C++)dll?

最佳答案

如果您的 DLL 从其导出函数中抛出异常,就会发生这种情况。 DLL 不能这样做,因此您需要捕获 DLL 边界处的所有异常,并将它们转换为错误代码返回值。

如果您无法控制 DLL,那么您需要为其编写一个包装层。创建另一个 native DLL,它调用原始 DLL 并捕获它引发的任何异常。我怀疑您可以使用另一个 Delphi DLL 来完成此操作,或者使用使用 SEH 捕获异常的 C 或 C++ DLL。

可以编写脚本来生成此类包装器 DLL 的代码。如果您需要包装很多函数,您就会想要这样做。

关于.net - 检测从 .NET 调用的调用 dll 的崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16919418/

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