MFC4.2的源码是这么定义的
#define IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, wSchema, pfnNew) \
AFX_COMDAT const AFX_DATADEF CRuntimeClass class_name::class##class_name = { \
#class_name, sizeof(class class_name), wSchema, pfnNew, \
RUNTIME_CLASS(base_class_name), NULL };侯sir的仿真代码为:
#define IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, wSchema, pfnNew) \
static char _lpsz##class_name[] = #class_name;\
AFX_COMDAT const AFX_DATADEF CRuntimeClass class_name::class##class_name = { \
_lpsz##class_name, sizeof(class class_name), wSchema, pfnNew, \
RUNTIME_CLASS(base_class_name), NULL };感觉侯老师的仿真代码更妥当啊!否则按真码,字符串指针指向的空间岂不只是一个临时变量的空间,很不安全啊?有高手能解释一下吗?