我为这个简单的愚蠢问题感到遗憾,但它反复出现在我的书中,几乎让我发疯; - (
我正在学习API / MFC,本书基于VC ++ 6.0,但我的VS版本是2010,'版本差异的cos我不知道如何修复它以匹配vc ++ 2010:
...
CString str;
str.Format("%s, blah...", whatever.output);
...
我有vc ++ 6.0&安装了vc ++ 2010,示例代码在vc ++ 6.0中正常运行,但在vc ++ 2010中无法运行,有人说转换为(LPCTSTR)是解决方案,但是
str.Format("%s, blah...", (LPCTSTR)whatever.output);
仍然不起作用!
我是否遗漏了重要的事情?但我该怎么办?
感谢您的回答。
答案 0 :(得分:3)
从您的评论看来,这是一个编译错误,因为该项目设置为Unicode。您通过将项目设置为非解码来避免错误,但要修复错误以便在Unicode和非Unicode配置中进行编译,您应该将所有string literals与_T
宏绑定在一起,如下所示:
str.Format(_T("%s, blah..."), whatever.output);
// ^^^_____________^ <-- add this