【问题标题】:Get C# String from "char*" returned from C++ library method?从 C++ 库方法返回的“char*”获取 C# 字符串?
【发布时间】:2012-05-28 22:58:39
【问题描述】:

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

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

【问题讨论】:

  • P/Invoke 或...? (请用访问方法标记。)
  • 封送它为StringBuilder?
  • @pst 我不确定,因为我对 C++ 编程非常陌生。我在源代码部分有方法,在标题部分有 c# 应用程序将使用的方法。在标题部分有方法签名..
  • @cicada 我将在哪里使用它?在 C++ 部分或 C# 中?

标签: c# c++ visual-studio-2010 visual-c++


【解决方案1】:

String 拥有a 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);

【讨论】:

  • 当我将 sbyte * x 分配给返回 char * 的 C++ 方法时,会生成以下错误:错误 1 ​​指针和固定大小的缓冲区只能在不安全的上下文中使用。有什么想法吗?谢谢!
  • 发现问题出在哪里...我不得不在方法签名中写 unsafe... :) 非常感谢!:)
猜你喜欢
  • 1970-01-01
  • 2011-03-12
  • 2011-03-20
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
  • 2015-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多