Я пишу приложение Win32 с Awesomium. Согласно разделу учебника я могу загрузить локальный файл на мой взгляд:Как создать WebURL из std :: wstring?
WebURL url(WSLit("file:///C:/dev/project/util/ui/index.html"));
view_->web_view()->LoadURL(url);
Это работает как ожидалось.
Когда я пытаюсь передать std::wstring
к WSList
функции:
std::wstring ui_path = L"file:///" + install_path + L"/util/ui/index.html";
WebURL url(WSLit(ui_path));
view_->web_view()->LoadURL(url);
Я получаю ошибку компиляции:
src/main.cc(52) : error C2664: 'Awesomium::WSLit' : cannot convert parameter 1 from 'std::wstring' to 'const char *' No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
Когда я пытаюсь передать WSLit(ui_path.c_str())
компилятор бросает другую ошибку:
src/main.cc(52) : error C2664: 'Awesomium::WSLit' : cannot convert parameter 1 from 'const wchar_t *' to 'const char *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Что такое правильный способ конвертации это до const char *
типа?
Edit:
От Awesomium документация:
WSLit() is a special helper function that lets you declare WebString literals. Most of our API uses UTF-16 strings (wrapped with WebString) but we added WSLit() so you can declare ASCII C-strings with minimal fuss.
Какую кодировку символов ожидает «WSLit» Awesomium? – IInspectable
Возможно ли даже, что вы можете столкнуться с данными без ASCII? Если да, вам все равно, что происходит? –
Быстрый Google показывает, что вы, вероятно, должны использовать 'WebString' со строками Unicode, например. 'URL WebURL (WebString (ui_path.c_str())). –