CMyDlg Dlg要调用默认的构造函数,前面不用。

解决方案 »

  1.   

    后面那个是真正有这么一个东西 CMyDlg的对象存在。
    而前者只是一个指针,说是要指向一个CMyDlg的对象,可这个对象在哪儿?如果没有指定便使用,就会出错。一般是new一个CMyDlg,让这个指针指向它
      

  2.   

    CMyDlg *pDlg;是一个指针,用的时候要初始化,要不让它指向于一个已存在的对象,要就new一个新的对象,pDlg=new CMyDlg ;这样的话,不用的时候要记得删除它(delete pDlg),用的时候还要create()和showwindow()。
    CMyDlg Dlg;是一个实例对象,可以直接用它,但也要create()和showwindow()。只是不用删除它,程序退出的时候自己会删除它。
      

  3.   

    CMyDlg Dlg
    void* pVoid=&Dlg;
    CMyDlg *pDlg=(CMyDlg *)pVoid;
    则有pDlg->DoModal()==Dlg.DoMadal()一样的效果!
      

  4.   

    前者的用法一般用在Enum...这类枚举函数上,我估计你的代码也是从调用这种函数的示例中摘抄的。
      

  5.   

    已经很清楚了...seesi.top263.net 共同进步!