我知道类的名字可以用CRuntimeClass创建他的事例吗?
我有的是字符串不是类名!不能这样CRuntimeClass  c = RUNTIME_CLASS(CMyDialog)!!!!!!!!!
CString className = "CMyDialog";
CObject *obj;
...
obj = ...

解决方案 »

  1.   


    CRuntimeClass * c;
    c = RUNTIME_CLASS(CMyDialog);试验一下
      

  2.   

    #define RUNTIME_CLASS(class_name) ((CRuntimeClass*)(&class_name::class##class_name))
    这是RUNTIME_CLASS宏的定义!所以:
    CRuntimeClass * c;
    c = RUNTIME_CLASS(CMyDialog);
    应该是对的!!
      

  3.   

    因为其等于:
    CRuntimeClass * c;
    c = ((CRuntimeClass*)(&CMyDialog::CMyDialog())
      

  4.   

    我说了不能这样去做CRuntimeClass  c = RUNTIME_CLASS(CMyDialog)
    应为我的函数是这样:(我想实现这个函数,我以前在.net里面这样写很方便)
    void ShowDialog(CString DialogName)
    {
    CDialog dlg;
    ...//变成自己的类。
    dlg.Domodal();
    }