Как открыть std :: fstream, который внутренне использует char с поперечной платформой файла W_CHAR в C ++ 20?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как открыть std :: fstream, который внутренне использует char с поперечной платформой файла W_CHAR в C ++ 20?

Сообщение Anonymous »

Это не дубликат того, как открыть std :: fstream (ofstream или ifstream) с именем файла Unicode? Или есть способ создать FSTREAM, IFSTREAM или OFSTREAM с помощью имени файла WCHAR_T* или WSTRING? (C ++) < /p>
Потому что они не решают вопрос о том, как сделать это на Windows C ++ и Linux. Их ответы не компилируются в обеих системах, потому что std :: fileystem < /code> или std :: fileystem :: experimental < /code> не реализована или не реализована должным образом, в VC ++ 2022. Ответы типа «Просто переписать это» или «просто используйте файл C», не полезны, потому что я уже знаю это. Теперь изменение потребует недель повторного тестирования. < /P>
< /li>
Ответы «Использовать виртуальную машину» не полезны, потому что приложение требует высокой производительности opengl. Только имя файла должно быть широким для поддержки с несколькими языками. < /P>
< /li>
< /ol>
VC ++ 20 компилируется и работает нормально, но GCC под Ubuntu 22.04.

Код: Выделить всё

void CMesh::dumpTris(const std::wstring& filename) const
{
std::wofstream out(filename);
< /code>
Это сообщение об ошибке GCC: < /p>
error: no matching function for call to ‘std::basic_ofstream::basic_ofstream(std::__cxx11::basic_string)’ ofstream out(path + filename);
Я уже пробовал filename.c_str () , чтобы получить w_char*, и это также не удается.


Подробнее здесь: https://stackoverflow.com/questions/797 ... r-filename
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»