嗯,我是菜鸟,记录一下成功的方法:
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
这篇博客介绍了如何在C#中将字符串转换为字节数组,并通过C++动态库进行交互。C#使用`Encoding.Default.GetBytes`方法处理字符串,然后通过`DllImport`调用C++导出的`SavePicture`函数,确保正确传递和返回值。此外,博客还提到了C样式导出和UnmanagedType.I1的使用细节。
3万+

被折叠的 条评论
为什么被折叠?



