VC6.0转VS2005问题及解决办法
该文主要内容转载自:http://www.cnblogs.com/sunliming/archive/2011/05/08/2040152.html。
我对原文的内容加以整理,便于阅读,以后发现新的转换问题,将会继续补充,
也欢迎大家跟帖提出新的问题并解决办法,帮助我继续完善,谢谢!
一. 函数原型改变导致的问题
1. errorC2440:CMainFrame 无法从 NMTOOLBARA转换为 NMHDR
VC6下OnToolbarDropDown的函数原型:
for(int i=0;i<100;i++) { f2(); } for(i = 1;i<10;i++) { //i已经定义 f1(); }
而有VS2005中,第二个循环中的i必须重新定义。
8. Create问题
CDlg *dlg=new CDlg;
dlg->create(IDD_DLG,this);//出错之处
error C2660: 'Create' : function does nottake 2 parameters且我将第二个参数去掉的时候,又会显示
error C2660: 'Create' : function does nottake 1 parameters19.error C2871: 'System' : a namespace with this name does notexist
原因:这个错误只能说VC编译器还不够智能啊
解决办法:在使用前需要使用Common Language Runtime Support (/clr).
在配置属性中,选择general-》选择clc (ConfigurationProperties/General/Common Language Runtime support)