前两天用C++做了一个dll, 其中一个函数有一个char*型的能数,在C#调用中提示,参数类型应为sbyte*类型。 用如下方法得到了解决: Recog.CRecog c = new Recog.CRecog(); //Recog是我在dll中的类 string s="h://1.txt"; sbyte[] sbArray = (sbyte[])((Array)System.Text.Encoding.Default.GetBytes(s));
//用这行代码将字符串转为sbyte[]型 fixed (sbyte* psb = sbArray) { c.InitNetFromFile(psb); //InitNetFromFile函数中的参数型在C++中定义为const char*类型 } 结束。
C#中String转换为sbyte*的方法
最新推荐文章于 2024-08-05 11:52:54 发布
本文介绍了一种解决C++ DLL导出函数与C#间参数类型不匹配的问题。通过将C#中的字符串转换为sbyte[]数组,并使用fixed关键字将其传递给C++函数,成功实现了跨语言调用。
540

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



