c# - 在 C# 中从 C 库中捕获 exit(#)

标签 c# c exception

我正在使用 C# 使用以下语法使用 C 库:

[DllImport("clib.so") static extern int func(char* foo);

我想知道是否有任何方法可以捕获 C 代码中发生的退出 (#),以便在发生严重错误时我可以重新加载库。

谢谢!

最佳答案

我相信 exit() 将终止进程而无需重新输入托管代码。可能您可以注册一个函数,以便在发生这种情况时通过 P/Invoke 预先调用 atexit() 来通知您。但是如果你从这里返回,这个过程仍然会退出。我想不返回将使流程处于不确定状态。您可能需要实现某种形式的进程隔离并观察垂死库的进程退出。

http://msdn.microsoft.com/en-us/library/6wdz5232.aspx

关于c# - 在 C# 中从 C 库中捕获 exit(#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3609560/

相关文章:

java - 为什么只能在方法签名中将某些异常声明为抛出

c# - 如果没有另一个实例,则打开一个表单 Open - 将类型传递给方法

需要 C# 正则表达式

c - 测试或验证红黑树的属性

C:引用编译器实现的数组元素是否特定?

Google map 上的 Android 强制关闭 : java. lang.NoSuchFieldException: loading_tile_android

c# - 如何使用 Excel COM Interop 以编程方式对包含数字的单元格范围应用条件格式?

c# - 如何从linq中的多个日期列中获取最小值?

c - 32 位校验和算法比 CRC32 质量更好?

c# - WCF 超时太快 & 'Connection was closed unexpectedly' 异常