现碰到一个棘手的问题,请教大家:在DLL中新建一个对话框,怎么总是失败。我在DLL中的resource中新建了一个窗体,然后新建了一个类CImgConvertDlg和这个窗体
关联起来。然后在在DLL中建立了一个导出函数Imgconvert()void ImgConvert()
{
AfxMessageBox("1");
CImgConvertDlg *imgConvetdlg= new CImgConvertDlg();
AfxMessageBox("2");
imgConvetdlg->Create( NULL,NULL,WS_VISIBLE,CRect( 0,0,100,100),NULL,IDD_IMGCONVERTDLG,NULL);
AfxMessageBox("3");
imgConvetdlg->ShowWindow(SW_SHOW);
AfxMessageBox("4");
imgConvetdlg->SendMessage(WM_USER_IMGCONVERTBEGIN);
}通不过,主要是Create()函数中,有错。
void ImgConvert()
{
CImgConvertDlg imgConvetdlg;
imgConvetdlg.DoModal();
}写一个测试程序来测试这个DLL,点了没有反映。请教各位,也请大家自己动手写写,看错在什么地方?
关联起来。然后在在DLL中建立了一个导出函数Imgconvert()void ImgConvert()
{
AfxMessageBox("1");
CImgConvertDlg *imgConvetdlg= new CImgConvertDlg();
AfxMessageBox("2");
imgConvetdlg->Create( NULL,NULL,WS_VISIBLE,CRect( 0,0,100,100),NULL,IDD_IMGCONVERTDLG,NULL);
AfxMessageBox("3");
imgConvetdlg->ShowWindow(SW_SHOW);
AfxMessageBox("4");
imgConvetdlg->SendMessage(WM_USER_IMGCONVERTBEGIN);
}通不过,主要是Create()函数中,有错。
void ImgConvert()
{
CImgConvertDlg imgConvetdlg;
imgConvetdlg.DoModal();
}写一个测试程序来测试这个DLL,点了没有反映。请教各位,也请大家自己动手写写,看错在什么地方?
我要在DLL中新建一个对话框,取名为IDD_IMGCONVERTDLG, 然后又新建了一个类CImgConvertDlg和这个窗体关联起来。然后在在DLL中建立了一个导出函数Imgconvert(),写了以下的一些代码,发现通不过。
方案一:
void ImgConvert()
{
AfxMessageBox("1");
CImgConvertDlg *imgConvetdlg= new CImgConvertDlg();
AfxMessageBox("2");
imgConvetdlg->Create( NULL,NULL,WS_VISIBLE,CRect( 0,0,100,100),NULL,IDD_IMGCONVERTDLG,NULL);
AfxMessageBox("3");
imgConvetdlg->ShowWindow(SW_SHOW);
AfxMessageBox("4");
imgConvetdlg->SendMessage(WM_USER_IMGCONVERTBEGIN);
}
通不过,主要是Create()函数中,有错。
方案二:
void ImgConvert()
{
CImgConvertDlg imgConvetdlg;
imgConvetdlg.DoModal();
}
然后写了一个测试程序来测试:(下面是另外一个工程的代码,我是静态调用DLL)
void CTestDllMFCDlg::OnButton1()
{
// TODO: Add your control notification handler code here
ImgConvert();
}
以上两种方案都通不过。请教各位。
上别添加richedit或active控件,因为加这些要初始化的,少了初始化语句不行
但问题还是没有解决
HINSTANCE save_hInstance = AfxGetResourceHandle();
AfxSetResourceHandle(theApp.m_hInstance);然后在最后加上
AfxSetResourceHandle(save_hInstance);如:
{
HINSTANCE save_hInstance = AfxGetResourceHandle();
AfxSetResourceHandle(theApp.m_hInstance);
CImgConvertDlg imgConvetdlg;
imgConvetdlg.DoModal();
AfxSetResourceHandle(save_hInstance);
}
应该就可以了