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