У меня есть проект MSVC, который использует freetype, и теперь я пытаюсь переместить его в Unicode. Но функции freetype не принимают аргументы LPCTSTR для путей к файлам, они хотят «const char *». Таким образом, код, подобныйМогут ли функции freetype принимать имена файлов Unicode?
WINDOWS_FONT WindowsFont;
// ....
FT_New_Face (pLibrary, WindowsFont.pszFileName, i, &face); // WindowsFont.pszFileName is LPTSTR
использовался для работы, когда проект был ascii, но больше не был, когда он был Unicode. Есть ли способ сделать freetype принимать имена файлов Unicode, некоторые препроцессоры определяют, чтобы переключить его на unicode?
В Windows, нет никакого способа, чтобы открыть файлы с помощью UTF-8 закодированных путей к файлу, так что я думаю, единственный подход был бы вариантом лица памяти. –
Вы можете получить короткое имя файла и передать это. – bames53
Также вы не должны использовать строки wchar_t в качестве имен файлов в Linux. В Linux имя файла является изначально char * и может даже не быть в известной кодировке локали, поэтому преобразование кодировок невозможно. Вы должны просто обрабатывать имя файла от пользователя как непрозрачный блок данных. – bames53