Visual C++ - str.format( "%s, blah.." , output) 在 VC++6.0 中工作得很好,但为什么不在 VC++ 2010 中工作呢?



我为这个简单愚蠢的问题感到抱歉,但它一再出现在我的书中,几乎让我发疯-(

我学习API/MFC,书是基于VC++6.0的,但我的VS版本是2010,因为版本差异,我不知道如何将其修复为匹配的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);

仍然不起作用!

我错过了什么重要的东西吗?但我该怎么办?

谢谢你的回答。

从您的评论来看,这似乎是一个编译器错误,因为项目设置为Unicode。您通过将项目设置为非Uncode来避免错误,但为了修复错误,使其同时以Unicode和非Unicode配置进行编译,您应该使用_T宏封装所有字符串文字,如下所示:

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

相关内容

最新更新