从System :: String ^到c ++中的char *编组

时间:2013-02-04 23:25:17

标签: c++ c++-cli

this文章中提到了System :: String和const char *之间的转换。

我的问题是:是否可以使用此结构(marshal_context)从System :: String转换为char *(注意缺少const)?

如果不是这个问题的推荐解决方案是什么?

我是否被迫使用较旧的Marshal :: StringToHGlobalAnsi?

评论中还有其他问题。

1 个答案:

答案 0 :(得分:1)

您可以使用c_str()获取基础c样式字符串,这是Strings提供的方法。它是const,但您可以将其复制到您自己的变量char*中。

只需分配一个足够大的缓冲区,就像使用malloc一样,然后再分配strncpy。有一百种不同的方法可以做到这一点,但这一切都归结为保留记忆,复制字符串,玩得开心。