宏, C++模板,补充代码
发布日期:2021-06-30 22:08:39
浏览次数:2
分类:技术文章
本文共 1420 字,大约阅读时间需要 4 分钟。
// 补充代码 标记后的内容,原来是没有的.
这是模拟宏和c++模板在MFC的应用.
/// @file main.cpp/// @brief 宏, C++模板,补充代码#includeclass CNoTrackObject {};class AFX_MODULE_STATE : public CNoTrackObject {};class AFX_THREAD_STATE : public CNoTrackObject {public: AFX_MODULE_STATE* m_pModuleState;};class CThreadLocalObject {public: CNoTrackObject* GetData(CNoTrackObject* (*pfnCreateObject)()) { // 补充代码 return pfnCreateObject(); } ~CThreadLocalObject() {} int m_nSlot;};template class CThreadLocal : public CThreadLocalObject {public: T* GetData() { T* pData = (T*)CThreadLocalObject::GetData(&CreateObject); return pData; } // 补充代码 // 类型转换运算符重载 operator T*() { return GetData();} T* operator->() { return GetData(); } // 补充代码 /// CreateObject 相当于在类中实现的一个全局函数 /// 和在类外完成的一个全局函数相同 friend CNoTrackObject* CreateObject() { static CNoTrackObject s_NoTrackObject; return &s_NoTrackObject; }};// 补充代码#define THREAD_LOCAL(class_name,ident_name) \CThreadLocal ident_name;#define EXTERN_THREAD_LOCAL(class_name,ident_name) \THREAD_LOCAL(class_name,ident_name)EXTERN_THREAD_LOCAL(AFX_THREAD_STATE,_afxThreadState)AFX_MODULE_STATE* AfxGetModuleState() { AFX_THREAD_STATE* pState = _afxThreadState; return pState->m_pModuleState;}int main(int argc, char* argv[]) { AFX_MODULE_STATE* pState = AfxGetModuleState(); return 0;}
转载地址:https://lostspeed.blog.csdn.net/article/details/50578353 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年05月01日 20时14分33秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
刷好老毛子系统进不了老毛子系统后台的解决办法
2019-04-30
Parallels Desktop 16 不能联网的解决办法
2019-04-30
SLAM中TUM数据集更改图片名字
2019-04-30
手把手教你--jquery chosen插件的使用和API(html下拉框美化)
2019-04-30
手把手教你--JAVA微信支付(H5支付)
2019-04-30
solr修改schema文件(solr修改配置文件)
2019-04-30
Bootstrap datetimepicker日期时间插件使用方法(日期时间选择器)
2019-04-30
字体图标库(Font Awesome)的使用--绝佳的图标字体库和CSS框架
2019-04-30
select下拉框分组展示插件的使用--(select-mania插件的使用)
2019-04-30
Java 8新特性之--lambda表达式的使用和应用
2019-04-30
Java Lambda表达式的应用--Stream API操作集合框架
2019-04-30
省市区三级联动插件Distpicker--前端实现地区三级联动
2019-04-30
solr的使用详解
2019-04-30
Myslq连接(JDBC)url属性的参数的设置
2019-04-30
关于Java继承,重载及运行的顺序的总结
2019-04-30
关于Spring MVC与前端的交互
2019-04-30
Mybatis逆向工程的使用
2019-04-30