Я новичок в C ++ и имею проблемы с преобразованием UnicodeString в строку, так что теперь ищу простой способ преобразования из одного типа в другой.
Я хочу использовать базовую функцию Windows, которая нуждается в строке с UnicodeString, как заставить работать код?
UnicodeString Exec = "notepad";
WinExec(Exec.c_str(), 0);
Используемая среда — конструктор c ++ xe2
std::string
не может хранить данные Unicode. Для этого вам понадобится std :: wstring.
Я никогда не слышал о UnicodeString раньше, но смотрю на API здесь:
http://docwiki.embarcadero.com/Libraries/XE2/en/System.UnicodeString_Methods
У него есть функция с именем .c_str (), которая возвращает wchar_t *, которую затем можно использовать для создания станд :: wstring
Если вам действительно нужен std :: string, взгляните на этот ответ.
Если вы ищете полную поддержку юникода в C ++, обратитесь к ICU API. Вот сайт, где вы можете найти все об этом. http://site.icu-project.org/