1、未将对象引用为实例
可能原因:某个地方引用了空对象
2、C#调C++写的DLL函数,出现“方法的类型签名与PInvoke不兼容错误”
可能原因:C#与C++中对应类型长度不一致。
如:C++中一结构体定义为
struct A{
char buf[64];
};
那么在C#中,若想在DLL函数中使用这个结构体,需重新定义,若定义为
public struct A{
public string buf;
};
则会报“方法的类型签名与PInvoke不兼容错误”的错误。
只有定义成
public struct A{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
public string buf;
};
才行。
还有比如long类型等,也需要注意。
未完待续。。。