我想知道以下内容是否适用于在托管字符串和标准字符串之间进行转换:
String ^ mymgdstring;
std::string mystdstring = *[PTR TO MYMGDSTRING, NOT SURE OF SYNTAX](即创建一个标准字符串,该字符串等于指向托管字符串的已取消引用的指针)
如果这是无效的,为什么不呢?在它们之间进行转换的最佳方法(即最有效)是什么?
另外,如何获取指向托管字符串的指针?
发布于 2011-06-19 22:06:17
复制是必要的,因为.NET字符串数据可以在垃圾收集期间到处移动。
您可以假定marshal_as是完成此转换的最有效方法。如果找到了更快的方法,marshal_as将被更新以使用它(它是一个模板,可以是专门化的)。
您可以使用PtrToStringChars获取指向System::String (它将是Unicode格式,这是.NET字符串的内部格式)的数据的内部指针。要在本机代码中使用它,必须首先使用pin_ptr而不是interior_ptr来固定字符串。
发布于 2011-06-19 20:16:11
https://stackoverflow.com/questions/6402241
复制相似问题