- 积分
- 3619
- 明经币
- 个
- 注册时间
- 2008-9-22
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2013-7-30 13:56:44
|
显示全部楼层
本帖最后由 luowy 于 2013-7-30 14:02 编辑
xiaomm250 发表于 2013-7-29 11:24
virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt)
这句能和virtual int On_kInitAppMsg (void ...
AcRx是个struct,AppRetCode是个枚举变量(enum,是enumeration 的缩写),在C++中,有些时候为了代码更加具有可读性,引入这么个枚举变量,如 MyInt{First , Second, Third},这个First是MyInt::First,默认的值就是个int类型,值为0。 MyInt{First=1 , Second, Third},按上面的来讲,First就是1,而不是为0了。这是C++的内容。
virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt),这个函数就不难看懂了吧?
virtual关键字,表明是个虚函数。
AcRx::AppRetCode这个是枚举变量的内容,跟上面示例的MyInt是一个东西,也是下面函数的返回值内容,
On_***是函数名称。
如果还不明白,我就再说多点,On_***这个函数返回的,一定是AcRx::AppRetCode的东西,就是kRetOk或者kRetError。
ObjectARX中,还有很多类似的东西,用得最多的就是:Acad::ErrorStatus。
最后,附上完整的AcRx定义:- struct AcRx {
- typedef void (*FcnPtr) ();
- enum DictIterType { kDictSorted = 0,
- kDictCollated = 1 };
- enum Ordering { kLessThan = -1,
- kEqual = 0,
- kGreaterThan = 1,
- kNotOrderable = 2 };
- enum AppMsgCode { kNullMsg = 0,
- kInitAppMsg = 1,
- kUnloadAppMsg = 2,
- kLoadDwgMsg = 3,
- kUnloadDwgMsg = 4,
- kInvkSubrMsg = 5,
- kCfgMsg = 6,
- kEndMsg = 7,
- kQuitMsg = 8,
- kSaveMsg = 9,
- kDependencyMsg = 10,
- kNoDependencyMsg = 11,
- kOleUnloadAppMsg = 12,
- kPreQuitMsg = 13,
- kInitDialogMsg = 14,
- kEndDialogMsg = 15,
- kSuspendMsg = 16 };
-
- enum AppRetCode { kRetOK = 0,
- kRetError = 3 };
- };
|
|