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

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

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

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

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


person Dean Chalk    schedule 24.11.2012    source источник


Ответы (2)


Вы можете использовать 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 );
person jheriko    schedule 24.11.2012

Platform::String использует char16 внутри и принимает char16* в своем конструкторе. Вам необходимо преобразовать текст char* в текст char16* с помощью MultiByteToWideChar. В этом вопросе говорится о переходе от Platform::String к char* и о переходе от char* к Platform::String следует идти обратным путем.

person Cornstalks    schedule 24.11.2012