我的类名都在配置文件中(为了方便维护),然后在使用的时候从配置文件中读取字符传,然后实例化一个对象,不用COM技术。该怎么实现啊?.net中有反射技术,在C++中怎么办?

解决方案 »

  1.   

    MFC的动态创建技术是它的关键技术《深入浅出MFC》的六大关键技术就将动态创建作为第一个介绍。用CRuntimeClass
      

  2.   

    类从CObject派生,加入DECLARE_DYNCREATE and IMPLEMENT_DYNCREATE宏.
    建立时使用RUNTIME_CLASS(strClassName)->CreateObject();
      

  3.   

    如果没有MFC的支持是否可以做到这一点
      

  4.   

    //类从CObject派生,加入DECLARE_DYNCREATE and IMPLEMENT_DYNCREATE宏.
    //建立时使用RUNTIME_CLASS(strClassName)->CreateObject();strClassName--我用一个字符串变量来替代好象是不行的吧,请解答?
      

  5.   

    问题就是,怎么用一个类的名字,直接实例化出一个对象来。
    比如说有个类名字是:“CSimple”,我利用这个字符串怎么能得到一个对象
      

  6.   

    strClassName用一个字符串变量代替是不行的,要你实际的类名。
      

  7.   

    其实就是用if语句而已
    if(strcmp(str, "CSimple") == 0)
       new CSimple();
    else if.....
      

  8.   

    首先这是可以实现的。基本的方法就是动态生成 在C++中是 RTTI这里有一篇帖子 你可以看看 :
    http://community.csdn.net/Expert/topic/3202/3202729.xml?temp=.5065576