win32 c++ fstream 宽参数
请参阅链接了解我正在谈论的内容。
我想使用链接中的第 1 点,并
#define tfopen _wfopen
#define _T(s) L##s
完全按照链接所说的进行操作:
std::ifstream file( tfopen("filename.txt", _T("r") );
但是 gcc (mingw) 4.4 说没有匹配的调用...
我做错了吗,还是上面链接中的信息不正确?
See link for what I'm talking about.
I want to use point 1 in the link and
#define tfopen _wfopen
#define _T(s) L##s
to do exactly what the link says is possible:
std::ifstream file( tfopen("filename.txt", _T("r") );
But gcc (mingw) 4.4 says there's no matching call...
Am I doing it wrong or is the info in the link above incorrect?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用宏作为 tfopen 的第一个参数,在您的情况下是“filename.txt”
You need to use the macro for the first parameter to tfopen, which in your case is "filename.txt"
简单的答案是您缺少
_T
。但是,您可能需要重新考虑整个TCHAR
方法 并调用_wfopen
(假设仅限 Windows 代码)。The simple answer is that you're missing a
_T
. However, you may want to rethink the entireTCHAR
approach and just call_wfopen
(assuming Windows-only code).