将字符串从c ++代码传递给c#dll

时间:2015-02-23 07:54:01

标签: c# visual-c++

我试图将字符串(图像文件路径)传递给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);

1 个答案:

答案 0 :(得分:0)

当你将字符串从C ++传递给C#dll时。我建议将该字符串作为BSTR传递。

因为这两种语言都不同。