我做了一个MFC扩展DLL.是一个对话框,我需要导出这个对话框类,在类名前加上 AFX_EXT_CLASS.然后在使用的时候把 dlg.h , dlg.dll , dlg.lib都拷贝到目录下.在我程序中引用dll的时候我用了下面的句子:#include "dlg.h"
......cdlg dlg;
dlg.domodal();问题是, 在dlg.h中,由于它是相应的对话框的类 ,所以在它的源代码中有下面的语句:
{EMUE =IDD_DIALOG1}
这样的句子, 在执行的时候就报错, 大概意思就是不存在IDD_DIALOG1这个资源,而我知道这个资源就是
在DLL中的.这个问题怎么解决???
......cdlg dlg;
dlg.domodal();问题是, 在dlg.h中,由于它是相应的对话框的类 ,所以在它的源代码中有下面的语句:
{EMUE =IDD_DIALOG1}
这样的句子, 在执行的时候就报错, 大概意思就是不存在IDD_DIALOG1这个资源,而我知道这个资源就是
在DLL中的.这个问题怎么解决???
cdlg dlg;
dlg.domodal();
cdlg dlg;
dlg.domodal();这个是在DLL中用的,我要在自己的程序中引用这个,就是直接用这个类,
要包含着个头文件的话就是有问题,该怎么办?
: CDialog(dlg::IDD, pParent)把这个dlg::IDD
删掉,自己再新建一个构造函数你自己的构造函数里面有个LPCTSTR lpszTemplateName的参数,作为对话框的id传递进去,就是dlg::dlg(LPCTSTR lpszTemplateName,CWnd* pParent /*=NULL*/)
:CDialog(lpszTemplateName, pParent)这样你构造对话框类的时候,只要记得把资源代进去就可以了
class AFX_EXT_CLASS CImportDlg
{
public:
void CreateDlg();
private:
CDlg m_dlg;
}// .Cpp File
void CImportDlg::CreateDlg()
{
m_dlg.Creat(...) // 我记不清参数形式了
}
// use ...
CImportDlg dlg;
dlg.Create(...);