首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# string 转char*解决思路

2012-04-22 
C# string 转char*我在C#中使用了C++生成的dll,由于dll的原型函数参数 是char*,所以导致C#中的 string变量

C# string 转char*
我在C#中使用了C++生成的dll,由于dll的原型函数参数 是char*,所以导致C#中的 string变量传递有误(编译正确,输出结果有误),请问怎么办?代码如下:
//C++ dll源码:
...
EXPORT void _stdcall setFeature(char* _feature); 
...

//C#调用 源码:
  [DllImport("LicenseDll.dll", CharSet = CharSet.Ansi)]//C#调用C++ dll的指令
  static extern int setFeature(string feature);
  // static extern int setFeature(char* feature);

static void Main(string[] args)
 {
......
  string kk = "f2";
  setFeature(kk);//编译正确,结果有误
  setFeature("f2");//);//编译 结果都正确
......
}

[解决办法]
使用 out 或是 ref 参数 试试
[解决办法]
转这个有什么用?

[解决办法]
用StringBuilder试试,C++中的char*是可变长的字符串,因此到C#里就只能用StringBuilder来对应,是否要家ref,看情况,这里估计不需要。

C# code
[DllImport("LicenseDll.dll", CharSet = CharSet.Ansi)]//C#调用C++ dll的指令static extern int setFeature(StringBuilder feature); 

热点排行