2012-11-18 88 views
1

我使用以下代碼讀取Windows 7中的當前目錄。當前目錄是C:\特斯塔敵人。當前的語言環境是英語(EN)。我用getCurrentDirectoryW的想法,這將是使用Unicode正確讀取,因爲函數的目錄路徑:使用getCurrentDirectoryW不讀取非語言環境字符

wchar_t w_pcRootLocation[MAX_PATH+100]; 
GetCurrentDirectoryW(MAX_PATH, w_pcRootLocation); 
wcout << w_pcRootLocation << endl; 

MAX_PATH在WINDEF.H定義,等於260

當我打印輸出到控制檯使用wcout,我所看到的只是以下內容:

C:\ 

中文字符看不明白。這裏有什麼問題,以及如何正確讀取Unicode中的路徑?

謝謝。

+2

單步執行調試器中的代碼,您會看到「GetCurrentDirectoryW」工作正常。問題出在'wcout'上。 (換句話說,漢字是正確閱讀的,當*寫*時會出現問題。) –

回答

2

GetCurrentDirectoryW()可能正常工作。這是下一個問題。

std :: wcout將使用「C」語言環境。您需要適當調整(imbue())以顯示您的代碼頁字形。詳情請參閱this SO question