一个很简单的问题

cdsgajxlp 2007-11-08 02:56:01
请问在VC中,如何根据类名创建类
(不是VC.net)

例:

有个类叫做 TestDialog;

我想创建该类,输入L"TestDialog",返回一个个指针object ,该类创建成功

然后转换为TestDialog类型,就可以使用了
TestDialog t = (TestDialog *)object;

请问这个object怎么创建

(在.net,java,Delphi中很好实现),请问Vc怎么实现,谢谢

有知道的,如果认为分不够,请直接提加分



...全文
167 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdsgajxlp 2007-11-19
  • 打赏
  • 举报
回复
VS2005
领头老羊 2007-11-15
  • 打赏
  • 举报
回复
VC6中没有这个函数啊 fromname
cdsgajxlp 2007-11-09
  • 打赏
  • 举报
回复
明白了,感谢yxz_lp

C++确实和java 一样,有这个功能
yxz_lp 2007-11-09
  • 打赏
  • 举报
回复
如果说要像Jave那样的实现,MFC也有同样的功能,前提是你要动态实现的类要继承至CObject,还要定义DECLARE_DYNCREATE
宏。

CObject* dynCreateClassInstanceByName(CString className)
{
CRuntimeClass* pRC=CRuntimeClass::FromName(className);
CObject* pObject=pRC->CreateObject();

return pObject;
}
cdsgajxlp 2007-11-09
  • 打赏
  • 举报
回复
C++老手出来指点一下,分不要嫌少,不够可以补啊
cdsgajxlp 2007-11-08
  • 打赏
  • 举报
回复
大家做大项目,是怎么处理的啊
不可能增加一个类,都要修改主程序吧
应该是读配置文件,动态new 界面吧

高手出来指导到一下啊
凤矶 2007-11-08
  • 打赏
  • 举报
回复
注册一个窗口类,可以根据名字动态创建。不知行不行。
  • 打赏
  • 举报
回复
或者参考COM的实现方式.很烦琐的一种方式.
  • 打赏
  • 举报
回复
C++语言本身没有这个功能,只能自己想办法来实现了
比如MFC的CRuntimeClass就是做这个的.
yxz_lp 2007-11-08
  • 打赏
  • 举报
回复
你可以把TestDialog类封装成dll。
1)封装成MFC dll,利用MFC的动态创建机制,根据类名就可以创建类的实例,不过需要dll的头文件。
2)封装成COM dll,当然TestDialog应该设计成一个COM类。根据类名(ProgID)就可动态创建。
cdsgajxlp 2007-11-08
  • 打赏
  • 举报
回复
当然是程序代码实现啊

java
eg:
public Object dynCreateClassInstanceByName(String className)
throws Exception
{
Class c;
Object o;

c = Class.forName(className);
o = (c.getClassLoader().loadClass(className)).newInstance();

return o;
}
ouyh12345 2007-11-08
  • 打赏
  • 举报
回复
不知道。
帮顶
huaren801007 2007-11-08
  • 打赏
  • 举报
回复
使用程序代码创建,还是使用vc工具?

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧