从网上下载了一个程序先编译后看看效果,发现原来的工程是Visual C++ 2003写的,于是转化到Visual C++ 2008 SP1的工程,一编译,直接跳出对话说 Microsoft (R) C/C++ 优化编译器 遇到问题需要关闭。我们对此引起的不便表示抱歉。如下图所示:
打开工程的项目属性,发现优化选项已经选择禁用了。没办法,开始慢慢检查问题。
1、把编译时报错的文件注释掉,确认其它文件编译无误。
2、把报错的文件从全部注释掉到部分注释掉,判断问题所在。
最终发现错误出在下面这句代码上:
swprintf(text, L"text%d", this);
突然记起前面遇到同样的问题的时候最后也是通过把sprintf函数注释掉才解决的,把这句代码注释掉,再次编译,发现问题解决了。
仔细看这句代码,实在看不错为什么要把类的this指针这样输出然后通过GDI+绘制到界面上去,也许是网上代码良莠不齐,或者自己水平太菜还没到能解读的层次。
另外放上在编译时同样遇到过这个问题的另外程序的界面截图,我很喜欢的一个程序界面,费了我好大劲才把残缺的代码弄出个勉强能看看的可执行程序来:
(别问我要代码,这种图和代码网上都有,只是代码不全而已,不过是可以拼凑出可执行程序来的)