c++ - 如何将 Platform::String 转换为 char*?

标签 c++ character-encoding microsoft-metro windows-runtime c++-cx

如何转换 Platform::String 的内容以供需要基于 char* 字符串的函数使用?我假设 WinRT 为此提供了帮助函数,但我找不到它们。

谢谢!

最佳答案

这是在代码中执行此操作的一种非常简单的方法,无需担心缓冲区长度。 只有在您确定要处理 ASCII 时才使用此解决方案:

Platform::String^ fooRT = "aoeu";
std::wstring fooW(fooRT->Begin());
std::string fooA(fooW.begin(), fooW.end());
const char* charStr = fooA.c_str();

请记住,在此示例中,char* 位于堆栈中,一旦离开作用域就会消失

关于c++ - 如何将 Platform::String 转换为 char*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11746146/

相关文章:

C++ 字符串有垃圾字符

python - 将 ISO-8859-1 字符粘贴到 Python IDLE 中 - IDLE 会更改它们

r - R中的字符编码

xaml - 让 TextBox 拉伸(stretch)以填充 StackPanel 中的宽度

xaml - Windows 8. Metro 应用程序。 XAML 异步绑定(bind)

javascript - 动画时 HTML5/JavaScript 游戏中的严重滞后

c++ - std::map - C++ 需要所有声明的类型说明符

c++ - 单纯形噪声范围太小

C++模板自定义警告

java - 将部分 Java 字节数组附加到 StringBuilder