C++代码:
extern "C" __declspec(dllexport)
int ExceptionTest()
{
int* pointer = NULL;*pointer = 100; return 100;
}
c#代码:
class C_Sharp_Call_C__
{
[DllImport("testDll.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void ExceptionTest();
}
c#调用代码:
1)使用vs的debug模式调试,如下:

2)直接运行debug生成的exe
软件闪退,说明trycatch捕获不到这个异常
3)appconfig文件中增加

直接运行exe,出现弹窗,异常被捕获

4)program增加全局异常捕获,同时取消代码的try catch

在生成的日志中可以得到详细的抛出异常的行数
2022-12-14 14:39:01 217 System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
在 WindowsFormsApp5.C_Sharp_Call_C__.ExceptionTest()
在 WindowsFormsApp5.Form1…ctor() 位置 C:\Users\Administrator\Desktop\临时\WindowsFormsApp5\WindowsFormsApp5\Form1.cs:行号 39
在 WindowsFormsApp5.Program.Main() 位置 C:\Users\Administrator\Desktop\临时\WindowsFormsApp5\WindowsFormsApp5\Program.cs:行号 27-----

![[附源码]Python计算机毕业设计房屋租赁管理系统设计Django(程序+LW)](https://img-blog.csdnimg.cn/ffe5616f2cba4066a94e1ab63536c2c0.png)

















