Я пытаюсь построить Platform::String
из результатов метода, который возвращает const char*
Я просто не могу заставить это работать, и целую вечность чесал голову.
Я не очень опытный разработчик C ++, поэтому ответ может быть очевидным, но я просто не могу понять это.
Спасибо за любую помощь.
Вы можете использовать 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 );
Platform::String
использования char16
внутренне, и занимает char16*
в своем конструкторе. Вам нужно конвертировать ваши char*
текст к char16*
использование текста MultiByteToWideChar
. Этот вопрос говорит о переходе от Platform::String
в char*
и идти от char*
в Platform::String
обратный путь должен следовать.