我使用了一个托管的C++包装器来编写我的C#代码。要创建此包装器类型的新对象,我需要将String转换为Sbyte*。一些StackOverflow.com帖子讨论了如何将String转换为byte[]以及byte[]转换为sbyte[],但没有涉及String到sbyte*的转换。
msdn.social.com提供了有关如何将字节数组转换为字符串的建议:
> // convert String to Sbyte*
> string str = "The quick brown, fox jumped over the gentleman.";
>
> System.Text.ASCIIEncoding encoding = new
> System.Text.ASCIIEncoding();
>
> Byte[] bytes = encoding.GetBytes(str);
然而,"bytes"不是sbyte*类型。我尝试将bytes转换为sbyte*的多次尝试都失败了。1. Convert.ToSbyte(bytes);
2. cast: (sbyte*) bytes;
请指导我如何将C#字符串转换为sbyte*。另外,请谈论引入sbyte*的任何副作用,我相信这是不安全的代码。谢谢, Kevin