#define DefineProHInit(_Struct_) DefineVal(_Struct_); \ void Init##_Struct_(void); \ struct _Struct_ *Get##_Struct_(void); #define DefineProInit(_Struct_) DefineVal(_Struct_); \ void Init##_Struct_(void){memset((char *)&Define(_Struct_),'0',sizeof(struct _Struct_));} \ struct _Struct_ *Get##_Struct_(void){return (struct _Struct_ *)&Define(_Struct_);} #define DefineInit(_Struct_) Init##_Struct_() #define DefineGet(_Struct_,_Name_) Get##_Struct_##_Name_()
上面的宏在不处理之前SlickEdit无法在输入过程中进行语法提示, SlickEdit 也不知道通过宏实现的类似 SetMSG_MSGICBOXMoveMake这样的方法,而编译器是可以编译的!无论如何, 这事非常不方便的, 因此需要我们在Options -> Lanaguages->Applaction Languages->C/C++ -->C/C++ Preprocessing中添加我们的宏 ,如下图蓝线处:
第一步、点击下面的 "New" , 把你宏名称填进去, 前后不能有空格。
第二步、如果SlickEdit 能在你当前的项目中找到这些宏 ,SlickEdit 会提示你选择, 你选择已有的就行了, 因为是从你代码里面提取的。
第三步、 添加完毕后 点 Apply 应用宏
第四步、SlickEdit 询问你是否需要 Retag ,点击是!
最后效果如下图演示:
一、输入过程中的智能提示::
二、文件中的函数列表
最后, 希望诸位对SlickEdit 情有独钟的朋友多多指教。