嘿! 我刚开始摆弄pinvoke并遇到了问题.我收到了AccessViolationException.首先,有没有办法调试或追踪哪个字段导致此错误?唯一要写的是结果结构.
c ++调用如下:
MyFunc(int var1, _tuchar *var2, _tuchar *var3, _tuchar *var4, MyStruct *Result,
_tuchar *var5, _tuchar *var6);
Run Code Online (Sandbox Code Playgroud)
c ++结构:
typedef struct MyStruct
{
_tuchar *id;
_tuchar *ErrorMessages;
int int1;
_tuchar language[3];
_tuchar *result;
int type;
int number;
int *type2;
_tuchar **blocks;
}
Run Code Online (Sandbox Code Playgroud)
C#结构:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct MyStruct
{
[MarshalAs(UnmanagedType.LPStr)]
public string Id;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=500)]
public char[] ErrorMessages;
public int int1;
[MarshalAs(UnmanagedType.LPStr)]
public string language;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 15)]
public char[] result;
public int type;
public int …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个好的/智能/干净的方式来全局处理错误,这样如果请求是Json并且发生异常,结果应该是json而不是html.
寻找现有的解决方案或如何建立自己的一些信息.