问题
DLL中封装了类CAnalyseSQL 在一个对话框应用程序中使用了这个类CAnalyseSQL::GetIDValue(CDialog * pDlg)
{
...
    CWnd * pCtrl = pDlg->GetDlgItem(CtrlID);//程序在运行到这一句时出错
...
}
出错提示:
Debug Assertion Failed! 
File: winocc.cpp
Line: 76 程序在运行到这一句时出错请问高手怎么解决这个问题. 急切等待!!!

解决方案 »

  1.   

    这一句是:ASSERT(::IsWindow(m_hWnd));
    说明pDlg的句柄无效,你调用CAnalyseSQL::GetIDValue函数时对话框尚未初始化好!
      

  2.   

    你的pDlg是在什么时候如何创建的?
    有没有调用Create、CreateIndirect之类的函数,DoModal也行。
    估计你没有调用
      

  3.   

    void CCallInterfaceDlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here
    ICAnalyseSQL * pSQL = CreateCAnalyseSQL();//这个是DLL中的类,
    pSQL->AddRef();
    string sql="@CTLID:1000^#####";
    pSQL->CreateSQL(sql,this);//这个是类中的函数,第二个参数是CDialog *
    pSQL->Release();
    }
      

  4.   

    不是说在GetIDValue 里出错吗?
      

  5.   

    你的DLL是扩展DLL吗?如果是,你可以检查一下你的DLL中的模块状态是否正确初始化与设置了。