str.format("%s,blah ..",输出)在vc ++ 6.0中工作正常,但为什么不在vc ++ 2010中工作

时间:2014-04-12 09:38:08

标签: visual-c++ mfc

我为这个简单的愚蠢问题感到遗憾,但它反复出现在我的书中,几乎让我发疯; - (

我正在学习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);

仍然不起作用!

我是否遗漏了重要的事情?但我该怎么办?

感谢您的回答。

1 个答案:

答案 0 :(得分:3)

从您的评论看来,这是一个编译错误,因为该项目设置为Unicode。您通过将项目设置为非解码来避免错误,但要修复错误以便在Unicode和非Unicode配置中进行编译,您应该将所有string literals_T宏绑定在一起,如下所示:

str.Format(_T("%s, blah..."), whatever.output);
//         ^^^_____________^  <-- add this