嗯,我是菜鸟,记录一下成功的方法:
C#是托管代码:赋值一个字符串:
string tt = "水果bigbig.png";
byte[] ss = System.Text.Encoding.Default.GetBytes(tt);
vtkDLLUse.Invoke.SavePicture(ss, ss.Length);
传递给C++时,用指针即可:
void SavePicture(char* i_Path, int Length);
C#调用C++导出dll动态库时,增加[return: MarshalAs(UnmanagedType.I1)]保证正确返回值
[DllImport("Foo.dll")]
[return: MarshalAs(UnmanagedType.I1)]
public static extern bool Foo();
从这里可知,由于使用的是C样式导出,所以用I3