m_pDlgAnalyse = new CDialogAnalyse(this);
if(m_pDlgAnalyse != NULL)
{
m_pDlgAnalyse->Create(IDD_DIALOG_ANALYSE,this);
m_pDlgAnalyse->ShowWindow(SW_SHOW);
}
以上程序为何在编译的时候编译器会报错?错误代码为:
 error C2660: 'Create' : function does not take 2 parameters
且我将第二个参数去掉的时候,又会显示
 error C2660: 'Create' : function does not take 1 parameters
我觉得程序没有什么错误呀,还请高手指点一二,万分感谢。。

解决方案 »

  1.   

    Create函数有很都种版本,如果你的CDialogAnalyse只是从CWnd继承而来,那么就有很多参数了,如果是从CDialog继承而来,就只有两个参数,你的是不是从CWnd继承来的?
      

  2.   

    错误报告说的很清楚了,Create没有第二个参数,从你的代码看,你的CDialogAnalyse应该是一个从CDialog类继承的子类,它的Create应该只有一个参数,就是对话框模板的ID,后面你加了一个this,这应该是调用它的类的对象指针,应该是不要的。
      

  3.   

    我的m_pDlgAnalyse 继承来自CDialog,当我把第二个参数去掉的时候,还是有错误的啊
      

  4.   

    m_pDlgAnalyse = new CDialogAnalyse(this);
    改成m_pDlgAnalyse = new CDialogAnalyse;
      

  5.   

    在string table 中加入IDD_DIALOG_ANALYSE和caption
      

  6.   

    CDialog* dlg=new CDialog;
    dlg->Create(IDD_YOURDLG,NULL);
    dlg->ShowWindow(SW_SHOW);