2

我在Windows 7中使用以下代码读取当前目录。当前目录为C:\特斯塔敌人。当前语言环境是英语 (EN)。我使用 getCurrentDirectoryW 的想法是它会正确读取目录路径,因为该函数使用的是 unicode:

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

MAX_PATH 在 WinDef.h 中定义,等于 260。

当我使用 wcout 将输出打印到控制台时,我看到的只有以下内容:

C:\

汉字显然是看不懂的。这里有什么问题,如何正确读取 Unicode 中的路径?

谢谢。

4

2 回答 2

3

GetCurrentDirectoryW() 可能工作正常。下一点是有问题的。

std::wcout 将使用“C”语言环境。您将需要imbue()适当地调整 ( ) 以显示您的代码页外字形。有关详细信息,请参阅此 SO 问题

于 2012-11-18T16:12:03.330 回答
0

这个问题似乎已经解决了 wcout 的问题......

wcout 没有将宽字符写入命令提示符

值得用调试器检查以确保w_pcRootLocation确实包含字符。

于 2012-11-18T16:13:28.003 回答