VC6工程升级为VC2010(1)
来源:互联网 发布:淘宝怎样能排名靠前 编辑:程序博客网 时间:2024/06/06 02:35
入公司来的第二个任务
把两个工程项目从VC6升级为VC2010
第一步,肯定就是用2010打开vc6的项目DSW文件了。然后等着2010转换了。转换完毕,点击生成。
然后就一堆错误了
第一类错误:
error C2440: “static_cast”:
无法从“void (__thiscall CTrueColorToolBar::* )(NMTOOLBARA *,LRESULT *)”转换为“void (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)” d:\工作文档\工作记录\第一个月\第2、3周工作内容\code\picker\picker\truecolortoolbar.cpp 42
VS2010和VC6的不同导致,导致消息响应函数的返回值类型不匹配
根据错误提示,直接修改就好了。把NMTOOLBARA改为HMHDR就行了
错误 23 error C2440: “static_cast”: 无法从“void (__thiscall CPicturePropertyPage::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)” d:\工作文档\工作记录\第一个月\第2、3周工作内容\code\picker\picker\picturepropertypage.cpp 94
这种事返回类型不一样造成的,把void 改为LRESULT就可以了。
第二类错误:
for(int i=0;i<xx;i++)
然后下面的所有都是
for(i=0;i<xx;i++)
导致报i没有定义的错误
引发这种错误的原因是:vs2010更符合C++的标准,临时变量的作用域已经修正了,VC6这种写法得修正。
修改方式很简单。。
把定义提前
int i=0;
for(i=0;i<xx;I++);
for(CSubclassWnd* p = theHookMap.Lookup(m_hWnd);p;p=p->m_pNext)
改为
CSubclassWnd*p=NULL;
for( p = theHookMap.Lookup(m_hWnd);p;p=p->m_pNext)
第三类错误:
在编译错误都结束后,又出现了一个问题
这种问题,直接在配置里把vc98的库加进库文件中。
第四类错误:
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
这段代码在VS2010中已经不需要再使用了,可能已经隐藏的实现了吧。
第五类错误:
可能出现下面的错误:
我用VS打开VC6建的工程,经常出现这种错误:
错误 1 fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0x0409 CVTRES
错误 2 fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 *****
开源项目中老的Win32工程转到VS2005工程出现的问题
将.RC2文件里的RT_MANIFEST定义注释掉即可 或者
工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否],即可 或者
双击 Resource Files 下的 xxx.rc 修改 RT_MANIFEST 英语(美国)为 中文(中国)
这些是我从网上搜到的方法 后两个方法我试了 好使 但是第一个.RC2文件中没有看到RT_MANIFEST定义
- VC6工程升级为VC2010(1)
- VC6工程升级为VC2010(2)
- 从VC6.0工程转向VC2010碰到的问题
- VC6项目升级为VC2005
- ATL工程由VC6升级到2003后不能编译为Release的解决方法
- VC6 VC2010 UAC设置
- VC6工程升级VS2013遇到的问题
- VC6工程升级VS2013遇到的问题
- VC6工程升级VS2013遇到的问题
- VC6工程升级VS2013遇到的问题
- 如何设置VC6 工程为UNICODE工程
- vc6工程以及与vs2010下的vc2010之间的对话框资源复制使用
- Qt4 工程升级为Qt5工程
- VC2010 大工程清理
- 我把一个VC6的工程转换为VS2008的工程后,编译总是出现找不到而且不能升级vc90.pdb文件的问题,error C2471--解决办法
- 一个VC6的工程转换为VS2008的工程后,编译找不到而且不能升级vc90.pdb文件的问题解决方法 2010-9-28 14:00
- VC6.0工程升级到VS2010遇到问题及解决办法
- VC6.0工程升级到VS2010遇到问题及解决办法
- Nginx的配置与部署(6)核心模块之主模块的测试常用指令
- Android 自定义View学习(4)波浪效果+光圈扩散效果
- Android开发<二> Android编译工具安装
- WINCE编译过程中的错误出现阶段
- linus常用命令
- VC6工程升级为VC2010(1)
- P – FULL TANK?
- 设计模式——策略模式(Strategy Pattern)
- GreenDao讲义1:带你阅读github的example
- IOS7突破限制--2
- iOS必收藏技术网站
- 在SQL语句中,如何判断汉字和字符?
- 07 ScrollView 滚动视图
- 黑马程序员-交通灯管理系统