马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 aeo 于 2016-7-9 16:44 编辑
ACED_ADSSYMBOL_ENTRY_AUTO
要定义成lisp函数的规则是 :
class AAA{
static int ads_BBB(){}
}
对应为 ACED_ADSSYMBOL_ENTRY_AUTO (AAA BBB false)
必须是ads_开始命名,名称不能出现 - : > 等lisp接受的字符.
用起来很不爽。
小改造一下:
1不要ads_开始(函数定义规则和原来一样,只是不必须ads_),
2名称 自己命名
ACED_ADSSYMBOL_ENTRY_AUTO2 (AAAclass BBBfunc lispName bool)
AAA 为class
BBB 为函数全称(如果ads_ 开始命名,ads_也要加入到名称里面)
lispName 字符串,输出函数名称(比如 "xb->lisp:BBB")
 - #define ACED_ADSSYMBOL_ENTRY_AUTO2(classname, Func, nameStr, regFunc) \
- __declspec(selectany) _ADSSYMBOL_ENTRY __AdsSymbolMap_##Func = { _RXST(nameStr), classname::##Func, regFunc, -1 } ; \
- extern "C" __declspec(allocate("ADSSYMBOL$__m")) __declspec(selectany) _ADSSYMBOL_ENTRY* const __pAdsSymbolMap_##Func = &__AdsSymbolMap_##Func ; \
- ACED_ADSSYMBOL_ENTRY_PRAGMA(Func)
|