2012-05-28 68 views
2

我有一个C++库,我在我的C#应用​​程序中使用。 C++库中的一种方法返回char *。我如何将char *转换为C#应用程序中的字符串?从C++库方法返回的“char *”获取C#字符串?

显然在我的C#应用​​程序中,此方法返回的数据类型的类型为sbyte *

+1

的P/Invoke还是...? (请使用用于访问的方法标记) – 2012-05-28 23:02:07

+1

将它作为'StringBuilder'进行编组? –

+0

@pst我不确定,因为我对C++编程非常陌生..我在源代码部分中有方法,并且在头部分中将使用c#应用程序使用的方法。在标题部分有方法签名.. – user1317277

回答

4

Stringa constructor that takes a char*

char* x = ... 
string s = new string(x); 

而且another one that takes a sbyte*

sbyte* x = ... 
string s = new string(x); 
+0

当我将sbyte * x分配给返回char *的C++方法时,正在生成以下错误:错误指针和固定大小的缓冲区只能在不安全的环境中使用..任何想法?谢谢! – user1317277

+0

发现问题所在......我不得不在方法签名中写入不安全...... :)非常感谢!:) – user1317277