VC6.0转VS2010 宏DECLARE_MESSAGE_MAP()遇到的问题

问题描述

在VC6.0中:#defineDECLARE_MESSAGE_MAP()private:staticconstAFX_MSGMAP_ENTRY_messageEntries[];protected:staticAFX_DATAconstAFX_MSGMAPmessageMap;staticconstAFX_MSGMAP*PASCAL_GetBaseMessageMap();virtualconstAFX_MSGMAP*GetMessageMap()const;可在VS2010:#defineDECLARE_MESSAGE_MAP()protected:staticconstAFX_MSGMAP*PASCALGetThisMessageMap();virtualconstAFX_MSGMAP*GetMessageMap()const;两者之间的宏定义变化了,我在移植到VS2010时,需要用到messageMap和_messageEntries[],该怎么调用呢大家帮帮忙吧。。。。

解决方案

解决方案二:
1.继承自CCmdTarget父类的子类都有GetMessageMap()函数,可以返回messageMap例如:constAFX_MSGMAP*pMessageMap=GetMessageMap();2.VS2010中AFX_MSGMAP结构体定义如下structAFX_MSGMAP{constAFX_MSGMAP*(PASCAL*pfnGetBaseMap)();constAFX_MSGMAP_ENTRY*lpEntries;};所以要取_messageEntries[],只要用pMessageMap->lpEntries就好。

时间: 2024-11-05 14:44:50

VC6.0转VS2010 宏DECLARE_MESSAGE_MAP()遇到的问题的相关文章

快速掌握VC6.0中各种宏注释应用(附图)_C 语言

为了方便别人或自己阅读自己的程序,注释是坚决不可少的.一个漂亮的程序,不是在于你应用的技术多么高深,而是能够把高深的技术描述的清楚易懂. 在Java的IDE环境--Eclispe中,有很多中注释的,并且设置注释也是很方便的,因为现在从事C++,嘻嘻,Eclispe已经卸载,至于设置注释的地方,直接百度或谷歌即可. 所以嘛,习惯了Eclispe的注释,所以想法设法,在VC6.0中尝试.当对于一个陌生的东西而言,如何熟悉他呢,就是拿你现在已有的知识,去联想.比如Java中截取字符串,或解析xml等,

用VC6.0集成环境快速开发VxD

VxD (Virtual Device Driver), 即虚拟设备驱动程序, 是运行在处理器Ring0特权级别的驱动程序,可以执行任何处理器指令,访问机器中的任何数据寄存器.VxD被用作Windows 9x系统和物理设备之间的接口,扩展了WINDOWS 系统的核心服务,能够访问和控制实际的硬件环境. 随着WIN 2000和新一代的设备驱动程序WDM(Windows Driver Model)推出,预计VxD将慢慢过时,而现实情况却是:随便打开一种网络计数器的统计窗口就会发现,Windows 9

COM组件设计与应用(九)——IDispatch接口for VC6.0

本文配套源码 一.前言 终于写到了第九回,我也一直期盼着写这回的内容耶,为啥呢?因为自动化(automation)是非常常用.非常有用.非常精彩的一个 COM 功能.由于 WORD.EXCEL 等 OFFICE 软件提供了"宏"的功能,就连我们使用的VC开发环境也提供了"宏"功能,更由于 HTML.ASP.JSP 等都要依靠脚本(Script)的支持,更体现出了自动化接口的重要性. 如果你使用 vc6.0 的开发环境,请继续阅读. 如果你使用 vc.net 2003

c++的问题-vc6.0建project时崩溃

问题描述 vc6.0建project时崩溃 我在win7 32位下安装了vc6.0,可是vc6.0建project时总是崩溃是怎么回事? 解决方案 装个VS2010或者2012或者2013(当然得win8)吧! 解决方案二: Win7平台可能VC6兼容性不好~

VC项目配置基础 (VC6.0 和VC2005)

一.预处理宏 1. 通用宏 VC6.0 中: Project Setting à C/C++ à Preprocessor definitions VC2005 中: 项目属性 à 配置属性 à C/C++ à 预处理器定义   WIN32 :指明是 Window 32 位系统的编译器,一般用作平台识别. _MBCS/_UNICODE :指明该工程使用的字符集(多字节字符集 /UNICODE ). 在 VC6.0 的 "Project Setting à C/C++ à Project Opti

VC6.0常用快捷键大全_C 语言

本文汇总了VC6.0常用的快捷键操作,熟练掌握这些快捷键操作,对于进行VC程序开发效率的提高有很大的帮助!常用快捷键详细汇总如下: 1.检测程序中的括号是否匹配    把光标移动到需要检测的括号(如大括号{}.方括号[].圆括号()和尖括号<>)前面,键入快捷键"Ctrl+]".如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声.  2.查看一个宏(或变量.函数)的宏定义把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_M

为什么程序在vc6.0编译通过并且运行正确但是在编程挑战时提交后却是运行结果不对

问题描述 为什么程序在vc6.0编译通过并且运行正确但是在编程挑战时提交后却是运行结果不对 编程挑战试了几次都是结果不对,但是我在vc6.0编译后运行的结果是正确的啊! 解决方案 这个有很多原因,比如说,你的程序本身有bug,虽然可以通过某些测试用例,但是oj使用的是另外的用例,没有通过,或者是你的程序在运行时间和使用内存上不符合要求,或者你的程序输入输出部分有问题,使得oj程序没法传递正确的测试用例,以及获取你的输出.还可能你使用了额外的库,而oj没有,你的编译器和oj的不同,造成编译上的细微

111-我WIN8为什么还是不能用vc6.0

问题描述 我WIN8为什么还是不能用vc6.0 我WIN8为什么还是不能用vc6.0 解决方案 VC++6.0用兼容模式还是不能运行,参见http://jingyan.baidu.com/article/09ea3ede27428ac0aede39a6.html 解决方案二: 首先你的VC6.0要正,然后才是解决兼容性问题 推荐下载这个http://download.csdn.net/album/detail/639 兼容性问题http://download.csdn.net/detail/ca

vc6.0如何在工程内调用另一个工程

问题描述 vc6.0如何在工程内调用另一个工程 就是说我有两个独立的工程,一个是系统界面软件,一个是接收数据的软件.我想要在系统界面中点击一个按钮打开接收数据的软件,并且在接收完成后再系统界面上显示下载完成.看到网上虽然可以在系统界面软件按钮处用Winexec或者ShellExecuteEx打开接收软件进行接收,但是不知道接收软件要怎么在下载完成后给系统界面一个返回值,用来执行显示下载完成,要在系统界面显示下载完成.还有一个办法就是合并,不过不知道具体怎么操作,是把Source Files,He