[转]VC6.0与VS2005的一些差别
2010-06-22 22:23
316 查看
一、 VC 6.0 中的 MFC ClassWizard 从 Visual Studio 2005 开始已被分拆成两个功能:
1. 对控件和菜单建立事件映射的功能
菜单视图 (View)->Solution Explorer 或 Ctrl+W,S 中 Resource Files 树下,在资源视图(通过双击资源文件 *.rc 可进入该视图)选中某一个菜单或者控件,右键其中的某项,在弹出的菜单中选择“添加事件处理程序” (Add Event Handler...) ,接下来就能找到 VS 6 中类似 Message Maps 的选项;
2. 添加窗体的消息映射
菜单视图 (View)-> 类视图 (Class View) 或 Ctrl+W,C 进入类视图单击类,右键此类选中“属性” (Properties) ,进入属性界面,其上有事件 (Events) 、消息 (Messages) 、重写 (Overrides) 等。对比 VS 6 没有了 Automation( 以前称作 OLE 自动化, COM IDispatch 接口 ) 选项。
从 Visual Studio 2005 开始有了 MFC Class Wizard ,不过是在类视图中选中项目,右键 Add->Class ,选中 MFC->MFC Class ,点击 Add 后才出现的。
二、 自 Visual Studio 2005 环境起,字符串如 "Microsoft" 无法自动转换为 LPCTSTR 类型,解决方法见微软 FAQ: Cannot convert from 'const char [..]' to 'LPCTSTR' 。
三、 *View.h 消息映射中
//{{AFX_MSG(*)
...
//}}AFX_MSG
这两个 AFX_MSG 注释宏不再存在,其中 * 代表建立的项目名。
同样在 *View.cpp 消息映射中注释宏 AFX_MSG_MAP 也不再存在了。
四、 连接 *.lib 。在 VC6.0 中是在 Project->Setting 中设置,而自 Visual Studio 2005 起,菜单 Project->Properties ,设置 lib 路径(只存在 VS2005 中) :Configuration Properties->General->Addition Library Directories ,添加 lib:Configuration Properties->Linker->Input->Addition Dependences 。
五、 Visual C++ Components 目录 自 VC 7.0 就已被移除,原先在 VC++ 6.0 中的操作为:菜单 Project->Add To Project->Components and Controls->Visual C++ Components->Popup Menu 。 .Net 环境项目可以通过工具 (Tools) -> 选择工具箱项 (Choose Toolbox Items) 进行 ; MFC 中添加 Popup Menu 可以通过向 View 类中添加消息 WM_CONTEXTMENU 进行。 Splash Screen 组件也因此不存在 ,但 可以参照 Microsoft Visual Studio 9.0/Samples/1033/AllVCLanghageSamples.zip 中拷贝出 splash.cpp 和 splash.h 这两个文件 , 加入到现有项目中或者 对话框增强版 。
六、 自 Visual Studio 2003 起,控件通知消息 WM_INITDIALOG 移到了重写 (Overrides) 里面,重写里的方法 OnInitDialog() 对应 WM_INITDIALOG 消息。
七、 自 VS2005 起对消息的检查更为严格, VC6 中没问题的
ON_MESSAGE(message,OnMyMessage);
返回值必须规范为 LRESULT
afx_msg LRESULT OnMyMessage(WPARAM, LPARAM) ;
返回值可以为 TRUE 或者 FALSE 。
八、 从 Components 里添加 ActiveX (基于 COM )不再可行,自 VS2005 以来中需要 Add Class->MFC Class From ActiveX Control ,点 Add ,窗口 Add Class From ActiveX Control Wizard 显现。
九、 ActiveX Control Test Container 即 tstcon32.exe ,默认保存在 %programfiles%/Microsoft Visual Studio 9.0/Common7/Tools/ 目录中,但从 VS2008 起已被移除, VS2005 是最后一个包含它的版本,如想获取它可以自行编译 TSTCON sample 或者单独获取其早期版本。
【资源】
Activex 、 OLE 、 COM 、 OCX 、 DLL 之间有什么区别?
【附录】
A : LPCTSTR
LPCTSTR = Long Pointer to a Const TCHAR STRing
LP 表示长指针,这是为了兼容 Windows 3.1 等 16 位操作系统遗留下来的,在 win32 中以及其它 32 位操作系统中, long 指针和 near 指针及 far 修饰符都是为了兼容的作用,没有实际意义。
P 表示是指针。
C 表示是常量即 const 。
T 在 Win32 环境中是一个 _T 宏,这个宏用来表示你的字符是否使用 UNICODE 。如果你的程序定义了 UNICODE 或者其它相关的宏,那么这个字符或者字符串将被作为 UNICODE 字符串, 否则就是标准的 ANSI 字符串。
STR 表示这个变量是字符串。
所以 LPCTSTR 就表示一个指向长地址的可以根据一些宏定义改变语义的固定字符串。
完整定义见 WinNT.h :
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jc_xiang/archive/2009/12/04/4942349.aspx
1. 对控件和菜单建立事件映射的功能
菜单视图 (View)->Solution Explorer 或 Ctrl+W,S 中 Resource Files 树下,在资源视图(通过双击资源文件 *.rc 可进入该视图)选中某一个菜单或者控件,右键其中的某项,在弹出的菜单中选择“添加事件处理程序” (Add Event Handler...) ,接下来就能找到 VS 6 中类似 Message Maps 的选项;
2. 添加窗体的消息映射
菜单视图 (View)-> 类视图 (Class View) 或 Ctrl+W,C 进入类视图单击类,右键此类选中“属性” (Properties) ,进入属性界面,其上有事件 (Events) 、消息 (Messages) 、重写 (Overrides) 等。对比 VS 6 没有了 Automation( 以前称作 OLE 自动化, COM IDispatch 接口 ) 选项。
从 Visual Studio 2005 开始有了 MFC Class Wizard ,不过是在类视图中选中项目,右键 Add->Class ,选中 MFC->MFC Class ,点击 Add 后才出现的。
二、 自 Visual Studio 2005 环境起,字符串如 "Microsoft" 无法自动转换为 LPCTSTR 类型,解决方法见微软 FAQ: Cannot convert from 'const char [..]' to 'LPCTSTR' 。
三、 *View.h 消息映射中
//{{AFX_MSG(*)
...
//}}AFX_MSG
这两个 AFX_MSG 注释宏不再存在,其中 * 代表建立的项目名。
同样在 *View.cpp 消息映射中注释宏 AFX_MSG_MAP 也不再存在了。
四、 连接 *.lib 。在 VC6.0 中是在 Project->Setting 中设置,而自 Visual Studio 2005 起,菜单 Project->Properties ,设置 lib 路径(只存在 VS2005 中) :Configuration Properties->General->Addition Library Directories ,添加 lib:Configuration Properties->Linker->Input->Addition Dependences 。
五、 Visual C++ Components 目录 自 VC 7.0 就已被移除,原先在 VC++ 6.0 中的操作为:菜单 Project->Add To Project->Components and Controls->Visual C++ Components->Popup Menu 。 .Net 环境项目可以通过工具 (Tools) -> 选择工具箱项 (Choose Toolbox Items) 进行 ; MFC 中添加 Popup Menu 可以通过向 View 类中添加消息 WM_CONTEXTMENU 进行。 Splash Screen 组件也因此不存在 ,但 可以参照 Microsoft Visual Studio 9.0/Samples/1033/AllVCLanghageSamples.zip 中拷贝出 splash.cpp 和 splash.h 这两个文件 , 加入到现有项目中或者 对话框增强版 。
六、 自 Visual Studio 2003 起,控件通知消息 WM_INITDIALOG 移到了重写 (Overrides) 里面,重写里的方法 OnInitDialog() 对应 WM_INITDIALOG 消息。
七、 自 VS2005 起对消息的检查更为严格, VC6 中没问题的
ON_MESSAGE(message,OnMyMessage);
返回值必须规范为 LRESULT
afx_msg LRESULT OnMyMessage(WPARAM, LPARAM) ;
返回值可以为 TRUE 或者 FALSE 。
八、 从 Components 里添加 ActiveX (基于 COM )不再可行,自 VS2005 以来中需要 Add Class->MFC Class From ActiveX Control ,点 Add ,窗口 Add Class From ActiveX Control Wizard 显现。
九、 ActiveX Control Test Container 即 tstcon32.exe ,默认保存在 %programfiles%/Microsoft Visual Studio 9.0/Common7/Tools/ 目录中,但从 VS2008 起已被移除, VS2005 是最后一个包含它的版本,如想获取它可以自行编译 TSTCON sample 或者单独获取其早期版本。
【资源】
Activex 、 OLE 、 COM 、 OCX 、 DLL 之间有什么区别?
【附录】
A : LPCTSTR
LPCTSTR = Long Pointer to a Const TCHAR STRing
LP 表示长指针,这是为了兼容 Windows 3.1 等 16 位操作系统遗留下来的,在 win32 中以及其它 32 位操作系统中, long 指针和 near 指针及 far 修饰符都是为了兼容的作用,没有实际意义。
P 表示是指针。
C 表示是常量即 const 。
T 在 Win32 环境中是一个 _T 宏,这个宏用来表示你的字符是否使用 UNICODE 。如果你的程序定义了 UNICODE 或者其它相关的宏,那么这个字符或者字符串将被作为 UNICODE 字符串, 否则就是标准的 ANSI 字符串。
STR 表示这个变量是字符串。
所以 LPCTSTR 就表示一个指向长地址的可以根据一些宏定义改变语义的固定字符串。
完整定义见 WinNT.h :
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jc_xiang/archive/2009/12/04/4942349.aspx
相关文章推荐
- VC6.0与VS2005的一些差别
- VC6.0与VS2005的一些差别
- 转载:VC6.0到VS2005的一些不同
- VC6.0升级至VS2005 引发的一些问题
- MySql与SqlServer的一些常用用法的差别
- Vs2005的一些改变
- 在MFC中如何自定义消息及相应事件(VC6.0及VS2005)
- VC6.0 相关的一些设置
- 【总结】火狐与IE浏览器之间的一些差别收集
- VS2005 C#WinForms控件 的一些属性
- [SQL]MySql与SqlServer的一些常用用法的差别
- 从vc6.0 直接转到vs2005、vs2010 其中要注意的问题总结
- 编写的vs2005水晶报表程序在vs2008下正常使用的一些实现方法
- VC6.0写的程序在VS2005上运行出现的问题
- 火狐与IE浏览器之间的一些差别收集
- MySql与SqlServer的一些常用用法的差别
- ADO.NET Entity framework 与 LINQ TO SQL 中的功能的一些差别(一)
- C语言中定义和声明的一些差别
- React.js中ES6 和 ES5写法的一些差别
- 新旧版hadoop的一些差别