Windows — самый простой способ конвертировать UnicodeString в const char * в C ++?

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

Я хочу использовать базовую функцию Windows, которая нуждается в строке с UnicodeString, как заставить работать код?

UnicodeString Exec = "notepad";
WinExec(Exec.c_str(), 0);

Используемая среда — конструктор c ++ xe2

1

Решение

std::string не может хранить данные Unicode. Для этого вам понадобится std :: wstring.

Я никогда не слышал о UnicodeString раньше, но смотрю на API здесь:

http://docwiki.embarcadero.com/Libraries/XE2/en/System.UnicodeString_Methods

У него есть функция с именем .c_str (), которая возвращает wchar_t *, которую затем можно использовать для создания станд :: wstring

Если вам действительно нужен std :: string, взгляните на этот ответ.

Как конвертировать wstring в строку?

3

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

Если вы ищете полную поддержку юникода в C ++, обратитесь к ICU API. Вот сайт, где вы можете найти все об этом. http://site.icu-project.org/

1

По вопросам рекламы [email protected]