VC语言

本类阅读TOP10

·VC++下使用ADO编写数据库程序
·VC++ 学习笔记(二)
·Windows消息大全
·每个开发人员现在应该下载的十种必备工具
·在2000和xp下,隐藏进程,VC6.0测试通过!!!
·用Visual C++打造IE浏览器(1)
·Netmsg 局域网聊天程序
·教你用VC6做QQ对对碰外挂程序
·VC++学习笔记(四)
·VC++中经常使用的函数!~~

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
通过类名称得到该类的新对象指针

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

用过虚拟函数的程序员,肯定对switch/case 句型带有一种不想用的心理,因为如果case过多的话,至少会有以下缺点:

1)  代码太长,不适合查看和管理;

2)  switch/case不够灵活;

3)  扩充性不够好,比如每增加一个case都要更改代码。

 

MFC有一个很好的框架,继承自CObject且通过DECLARE_DYNAMIC()IMPLEMENT_DYNAMIC声明的类,其动态创建类CRuntimeObject都会被加到类别型录网中去,如果能取得这个动态创建类,就能创建出该类对象。下面的代码就是在类别型录网中寻找类名对应的动态创建类,如果找到,就创建对象,并返回该对象指针;否则返回NULL

 

CObject* GetObjByClassName(CString strClassName)

{

CRuntimeClass *pClass;

AFX_MODULE_STATE* pModuleState = AfxGetModuleState();

for(pClass = pModuleState->m_classList;pClass!=NULL;

              pClass=pClass->m_pNextClass) {

              if(strClassName.Compare(pClass->m_lpszClassName)==0){

                     return (pClass->CreateObject());

              }

       }

       return null;

}

 

返回的指针是CObject *类型,在得到后可以转换成你需要的类型!(注意安全控制哦)

 

注:

 1 继承自CObject

 2 DECLARE_DYNAMIC()IMPLEMENT_DYNAMIC声明

 3 要有默认构造函数




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有