MFC中的那些宏是做什么的?(在线等待)

cpa 2002-11-05 07:23:20
我只知道宏定义是如下格式
#defind ABC abc(a,b);
MFC中的宏我看不懂
...全文
55 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hediant 2002-11-05
  • 打赏
  • 举报
回复
补充一点,在C++中,句尾的“\“表示续行的意思:)
hediant 2002-11-05
  • 打赏
  • 举报
回复
这是定义运行时刻类的宏

其中“##”表示连接两个字串的意思。举个例子来说:

假设你定义了一个类CMyClass,你希望把它申明为运行时刻类,于是你使用了上面的宏,如下:
class CMyClass{
CMyClass();
~CMyClass();

... ...

DECLARE_DYNAMIC(CMyClass)
};

它等同于如下代码:
class CMyClass{
CMyClass();
~CMyClass();

... ...

public:
static CRuntimeClass classCMyClass;
virtual CRuntimeClass* GetRuntimeClass() const;
};

这样,你就在你自定义的类CMyClass中申明了一个公共静态变量classCMyClass, 它是CRuntimeClass的一个实例。

OVER~
cpa 2002-11-05
  • 打赏
  • 举报
回复
#define DECLARE_DYNAMIC(class_name) \
public: \
static CRuntimeClass class##class_name; \
virtual CRuntimeClass* GetRuntimeClass() const;
这是深入浅出MFC第三章的一个宏
ljzcom 2002-11-05
  • 打赏
  • 举报
回复
这是条件编译的需要。
llm308 2002-11-05
  • 打赏
  • 举报
回复
是防止文件被包含多次吧!
cpa 2002-11-05
  • 打赏
  • 举报
回复
#if !defined(AFX_BINLINVIEW_H__8BAE6C98_775D_4F6F_9A57_6DC12795F287__INCLUDED_)
#define AFX_BINLINVIEW_H__8BAE6C98_775D_4F6F_9A57_6DC12795F287__INCLUDED_
这个是什么意思?
dizzo 2002-11-05
  • 打赏
  • 举报
回复
MFC宏那么多,贴一个你看不懂的出来,大家帮你看,宏就是拿一个东西代替另一个。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧