我有一個使用freetype的MSVC項目,現在我試圖將它移動到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編碼的文件路徑打開的文件,所以我想唯一的辦法是記憶面孔選項。 – 2012-04-09 15:14:58
您可以獲取文件的簡短文件名並傳遞該文件。 – bames53 2012-04-09 15:29:38
你也不應該在Linux上使用wchar_t字符串作爲文件名。在Linux上,文件名本身是char *,甚至可能不在已知的區域設置編碼中,因此不可能在編碼之間進行轉換。您應該簡單地將用戶的文件名視爲不透明的數據塊。 – bames53 2012-04-09 15:32:21