1.尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
经过多次测试,查找资料,原因是 C++ 写的 DLL 数据类型 不能直接用 string 类型,换成 char* 就好了;
2.对 PInvoke 函数“ConsoleTest!ConsoleTest.ProtocolInterface::ComOpen”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
解决方式:添加属性: CallingConvention=CallingConvention.Cdecl