gpt4 book ai didi

C# DllImport 意外崩溃

转载 作者:太空狗 更新时间:2023-10-29 21:34:11 28 4
gpt4 key购买 nike

我有一个带有 C++ 组件的 C# 应用程序。我在模块之间使用 DllImport 进行通信。该应用程序可以正常工作很多天,有时会意外崩溃。

[DllImport("recorder", CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr start_recording();

是否可以在 protected 容器中运行 C++ 部分,以免整个应用程序崩溃?

事件查看器

Application Error

Faulting application name: Recorder.exe, version: 1.0.0.0, time stamp: 0x59eef7cb
Faulting module name: avformat-57.dll, version: 57.71.100.0, time stamp: 0x00000000
Exception code: 0xc0000005
Fault offset: 0x00000000000d7e7f
Faulting process id: 0x186c
Faulting application start time: 0x01d3620b7e41ef96
Faulting application path: C:\Test\Recorder.exe
Faulting module path: C:\Test\avformat-57.dll
Report Id: 3fde49fc-d2ed-11e7-bf5c-002590abb7d4

.NET Runtime

Application: Recorder.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: exception code c0000005, exception address 000007FEEA407E7F

最佳答案

通常,有些情况总是会导致进程退出,而您与它无关。

虽然您可以通过捕获异常、设置信号处理程序或只是修复错误来处理一些错误,但这只会修复特定情况,不会为您提供通用解决方案,并且您可能无法控制完全超过模块。

在这种情况下,常见的解决方案是将模块分离到不同的代理进程中,该代理进程将与您自己的应用程序进行通信。

关于C# DllImport 意外崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47506754/

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