各位高手。在MFC程序中,如何才能以CString字符串得到一个类的名称。谢谢!

解决方案 »

  1.   


    这哪跟那呢?mfc中的类,可以通过CRuntimeClass::m_lpszClassName 获取类名
    CMfcClass MfcClass;
    CString strClsName;
    strClsName = MfcClass.GetRuntimeClass()->m_lpszClassName
      

  2.   

    看下这个,MSDN上面的:
    #include <iostream>
    #include <typeinfo.h>class Base {
    public:
       virtual void vvfunc() {}
    };class Derived : public Base {};using namespace std;
    int main()
    {
       Derived* pd = new Derived;
       Base* pb = pd;
       cout << typeid( pb ).name() << endl;   //prints "class Base *"
       cout << typeid( *pb ).name() << endl;   //prints "class Derived"
       cout << typeid( pd ).name() << endl;   //prints "class Derived *"
       cout << typeid( *pd ).name() << endl;   //prints "class Derived"
       delete pd;
    }
      

  3.   

    使用 CRuntimeClass获取的class必须是从 CObject继承的,而且有DECLEAR_DYNAMIC,或DECLEAR_DYNACREATE ,或DECLEAR_SERIELIZE宏.借宝地宣传宣传我的网站从东京看富士山http://www.nunew.com
      

  4.   

    但是CRuntimeClass 有一个好处,就是能存储和读取class, typeid( pb ).name()是纯粹的c++,需要额外开发才能满足很多商业上的功能.