【问题标题】:Converting from string to char* only copies the first character从字符串转换为 char* 只复制第一个字符
【发布时间】:2018-11-30 17:16:46
【问题描述】:

我查看了大多数字符串到 char* 转换的 SO 答案,但它对我不起作用。这是我的代码:

public static void Main() {
    string name = "ELEM";
    unsafe{
          fixed(char* name_ptr = name) {
              Console.WriteLine(name_ptr->ToString());
          }
    }
} 
// Output: E

我需要这样做,因为我必须将一个 char* 传递给我的 C++ 自定义 DLL。为什么它只会复制第一个字符,我怎样才能正确地将字符串转换为 char*?

【问题讨论】:

标签: c# unsafe


【解决方案1】:

你只得到第一个字符,因为 name_ptr 只是对单个字符的引用,当你调用 name_ptr->ToString() 时,你实际上调用了 char.ToString()。

您应该改用StringBuilder 将字符串传递给C/C++ DLL。见this question。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 2020-05-08
    • 2012-10-03
    • 2013-09-03
    • 2020-09-30
    • 2015-07-04
    • 2021-05-27
    相关资源
    最近更新 更多