如何将Platform :: String转换为char *? [英] How to convert Platform::String to char*?

查看:167
本文介绍了如何将Platform :: String转换为char *?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

How do I convert the contents of a Platform::String to be used by functions that expect a char* based string? I'm assuming WinRT provides helper functions for this but I just can't find them.

谢谢!

推荐答案

Platform :: String :: Data()将返回 wchar_t const * 指向字符串的内容(类似于 std :: wstring :: c_str())。 Platform :: String 表示不可变字符串,因此没有访问器可以获取 wchar_t * 。您需要复制其内容,例如改为 std :: wstring 以进行更改。

Platform::String::Data() will return a wchar_t const* pointing to the contents of the string (similar to std::wstring::c_str()). Platform::String represents an immutable string, so there's no accessor to get a wchar_t*. You'll need to copy its contents, e.g. into a std::wstring, to make changes.

没有获取 char * char const * ,因为 Platform :: String 使用宽字符(所有Metro风格的应用程序都是Unicode应用程序)。您可以使用 WideCharToMultiByte 转换为多字节。

There's no direct way to get a char* or a char const* because Platform::String uses wide characters (all Metro style apps are Unicode apps). You can convert to multibyte using WideCharToMultiByte.

这篇关于如何将Platform :: String转换为char *?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆