各位vc高手:
    小弟有一个问题:最近做一个项目,准备将类名写入文件。然后,从文件中读取类名,根据类名想动态生成该对象,不知道vc是否提供一个对象的方法可以这样生成该对象?各位高手请指教!!

解决方案 »

  1.   

    深入浅出mfc 里有讲,我没有用过
      

  2.   

    深入浅出mfc 用的是宏, 宏需要编译期准备好的. 这种方法行不同.一般, 可以使你要动态创建的类从某个基类 CBase 继承, . 可以做一个类: 
    class Creator
    {
    public:
    CBase* Create(char* strClass);
    };strClass 是你的类名. Create 接口可以这么写:
    {
    if(strcmp(strClass, "CAbc") == 0)
    {
     return (new CAbc); 
     }
    else if... // 其他的类
    }
    }程序初始化的时候创建Creator对象 (singleton, 程序中唯一), 当需要动态创建某个对象的时候, 调用 m_Creator.Create(strClassName); 返回一个创建的对象指针.
      

  3.   

    你看一下MFC深入浅出
    这样的方法还只是最初的一个frame
    如果能用上CRuntimeClass那就可以在不修改原有代码基础上直接Create
    DECLARE_DYNCREATE就是负责做这个事的
    你完全可以借鉴一下MFC的机制
    都是有源代码的,复制过来就OK了