我已经查看了大多数字符串到 char* 转换的答案,但它对我不起作用。这是我的代码:
public static void Main() {
string name = "ELEM";
unsafe{
fixed(char* name_ptr = name) {
Console.WriteLine(name_ptr->ToString());
}
}
}
// Output: E
我需要这样做,因为我必须将 char* 传递给我的 C++ 自定义 DLL。为什么它只复制第一个字符,如何正确地将字符串转换为 char*?
最佳答案
您仅获得第一个字符,因为 name_ptr 只是对单个字符的引用,当您调用 name_ptr->ToString()
时,您实际上调用了 char.ToString()
。
您应该使用 StringBuilder
将字符串传递给 C/C++ DLL。请参阅this question .
关于c# - 从字符串转换为 char* 仅复制第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53562081/