注册 登录
编程论坛 VC++/MFC

关于预定义的

zhiyajun11 发布于 2011-01-17 23:14, 672 次点击
请问这些代码什么意思:
#define TRY { AFX_EXCEPTION_LINK _afxExceptionLink; try {

#define CATCH(class, e) } catch (class* e) \
    { ASSERT(e->IsKindOf(RUNTIME_CLASS(class))); \
        _afxExceptionLink.m_pException = e;
第一行中到底是把什么定义成什么?因为中间好多空格,分不清是把什么定义成什么。。。
第二个define是把什么定义成什么?
第二个define中每行中的斜杠和分号是什么意思?
谢谢了!!!
2 回复
#2
minquanren2011-01-18 11:32
最后边是不是少了个大括号?

#define TRY { AFX_EXCEPTION_LINK _afxExceptionLink; try {
是把TRY { AFX_EXCEPTION_LINK _afxExceptionLink;定义成try {

#define CATCH(class, e) } catch (class* e) \
{ ASSERT(e->IsKindOf(RUNTIME_CLASS(class))); \
    _afxExceptionLink.m_pException = e;}
很明显是把CATCH(class, e)定义成
} catch (class* e) \
{ ASSERT(e->IsKindOf(RUNTIME_CLASS(class))); \
    _afxExceptionLink.m_pException = e;}

使用方法:

TRY
    ...
CATCH(class, e)
#3
zhiyajun112011-01-18 11:51
回复 2楼 minquanren
中间那么多空格,你是怎么判断把哪个定义成哪个的?
还有,那些斜杠是什么?
1