我试图将字符串(图像文件路径)传递给c#dll接口。我遇到了运行时错误, "未处理的异常:System.AccessViolationException:尝试读取或写入受保护的内存。这通常表明其他内存已损坏。
在System.String.wstrcpy(char * dmem,char * smem,Int32 charCount)
在System.String.CtorCharPtrStartLength(char * ptr,Int32 startIndex,Int32 length)
在System.StubHelpers.BSTRMarshaler.ConvertToManaged(IntPtr bstr)"
C ++代码: Char img =" filepath&#34 ;; 将char 转换为unsigned short *并传递给C#dll接口。
C#dll界面: SampleInterface(string str);
答案 0 :(得分:0)
当你将字符串从C ++传递给C#dll时。我建议将该字符串作为BSTR传递。
因为这两种语言都不同。