Windows 8 — C ++ / CX — мне нужно создать экземпляр Platform :: String из const char *

Я пытаюсь построить Platform::String из результатов метода, который возвращает const char*

Я просто не могу заставить это работать, и целую вечность чесал голову.

Я не очень опытный разработчик C ++, поэтому ответ может быть очевидным, но я просто не могу понять это.

Спасибо за любую помощь.

4

Решение

Вы можете использовать mbstowcs http://www.cplusplus.com/reference/cstdlib/mbstowcs/ заполнить буфер wchar_t, а затем передать его конструктору Platform :: String, чтобы создать экземпляр с данными, которые вы хотите.

static wchar_t buffer[ MAX_BUFFER ];
mbstowcs( buffer, source, MAX_BUFFER );
platformString = ref new Platform::String( buffer );
4

Другие решения

Platform::String использования char16 внутренне, и занимает char16* в своем конструкторе. Вам нужно конвертировать ваши char* текст к char16* использование текста MultiByteToWideChar. Этот вопрос говорит о переходе от Platform::String в char*и идти от char* в Platform::String обратный путь должен следовать.

3