MSVC的STL如何打开具有宽字符串文件名的fstream?

时间:2011-06-25 16:20:26

标签: c++ unicode fstream widestring

  

可能重复:
  Opening fstream with file with Unicode file name under Windows using non-MSVC compiler

我一直在尝试找到一种简单的方法,在Windows中使用GCC打开文件名中包含非ASCII字符的文件。 Microsoft的STL为wstring类提供fstream重载,但标准C ++没有,因为`wchar_t'没有明确定义。

我正在寻找一种方法,在标准C ++和Win32 API中为文件名提供fstream时打开std::wstring

想要创建我自己的streambuf子类,它接受std::wstring并模仿fstream。我需要模仿fstream::open(const std::wstring &)(或其声明的任何内容)函数,因此我可以毫不费力地打开奇怪命名的文件。

我已经想过使用短的DOS 8.3文件名,但GetShortPathName接受并输出宽字符串,对STL构造函数/ open函数不可用。我有适当的方法来转换为不同的代码页,所以将宽字符串转换为本地代码页可能会提供正确的8位字符串,允许我打开fstream

0 个答案:

没有答案