【问题标题】:win32 c++ fstream wide argumentwin32 c++ fstream 宽参数
【发布时间】:2010-08-12 19:22:32
【问题描述】:

请参阅 link 了解我在说什么。

我想在链接中使用第 1 点和

#define tfopen _wfopen
#define _T(s) L##s

完全按照链接所说的去做:

std::ifstream file( tfopen("filename.txt", _T("r") );

但是 gcc (mingw) 4.4 说没有匹配的调用...

是我做错了还是上面链接中的信息不正确?

【问题讨论】:

    标签: unicode winapi fstream tchar


    【解决方案1】:

    您需要将宏用于 tfopen 的第一个参数,在您的情况下是“filename.txt”

    std::ifstream file( tfopen(_T("filename.txt"), _T("r") );
    

    【讨论】:

      【解决方案2】:

      简单的答案是您缺少_T。但是,您可能想要 rethink the entire TCHAR approach 并只需调用 _wfopen(假设仅适用于 Windows 的代码)。

      【讨论】:

      • 这正是我决定做的。我有简单的 toUTF16 和 toUTF8 函数来与 win32 API 交互,其余的我使用 std::string (UTF-8)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多