问题
DLL中封装了类CAnalyseSQL 在一个对话框应用程序中使用了这个类CAnalyseSQL::GetIDValue(CDialog * pDlg)
{
...
CWnd * pCtrl = pDlg->GetDlgItem(CtrlID);//程序在运行到这一句时出错
...
}
出错提示:
Debug Assertion Failed!
File: winocc.cpp
Line: 76 程序在运行到这一句时出错请问高手怎么解决这个问题. 急切等待!!!
DLL中封装了类CAnalyseSQL 在一个对话框应用程序中使用了这个类CAnalyseSQL::GetIDValue(CDialog * pDlg)
{
...
CWnd * pCtrl = pDlg->GetDlgItem(CtrlID);//程序在运行到这一句时出错
...
}
出错提示:
Debug Assertion Failed!
File: winocc.cpp
Line: 76 程序在运行到这一句时出错请问高手怎么解决这个问题. 急切等待!!!
说明pDlg的句柄无效,你调用CAnalyseSQL::GetIDValue函数时对话框尚未初始化好!
有没有调用Create、CreateIndirect之类的函数,DoModal也行。
估计你没有调用
{
// 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();
}