问题描述
如何将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 *?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!