Dll的入参是一个CWnd* pParentWnd,我在dll中开了一个线程,是CWinThread,消息循环已经做了,我要在线程中生成一个对话框,对话框的父窗口就是dll入参,我用
         
         CShareDlg* m_pDlg = new CShareDlg;
BOOL bl=m_pDlg->Create(IDD_DIALOG,pParentWnd);
m_pDlg->ShowWindow(SW_SHOW);编译通过,一执行就报错,在create处过不去,pParentWnd不为空,请问应该是哪里出的问题

解决方案 »

  1.   

    pParentWnd是我从exe传进dll的参数,它是一个窗口指针
      

  2.   

    您的Create怎么才两个参数啊?
    virtual BOOL Create(
     LPCTSTR lpszClassName,
     LPCTSTR lpszWindowName,
     DWORD dwStyle,
     const RECT& rect,
     CWnd* pParentWnd,
     UINT nID,
     CCreateContext* pContext = NULL);
      

  3.   

    IDD_DIALOG是对话框里的资源吗?
    你用的是哪种dll,是MFC extend吗?
      

  4.   

    IDD_DIALOG是对话框里的资源吗?      对
    你用的是哪种dll,是MFC extend吗?    不是,regular dll shared mfc现在我又换用
    BOOL bl = m_pDlg ->Create(NULL,lpszClassName,lpszWindowName,dwStyle, rect,pParentWnd,IDD_DIALOG,pContext);m_pDlg->ShowWindow(SW_SHOW);这会不报错了,bl=1,可对话框也没显示出来.
      

  5.   

    写错了,不是create,是CreateEx...