我用的是规范的MFC动态DLL,DLL本身编译没问题
DLL中代码:
class CDhk : public CDialog
{
// Construction
public:
CDhk(CWnd* pParent = NULL); // standard constructor// Dialog Data
//{{AFX_DATA(CDhk)
enum { IDD = IDD_DHK_DIALOG }; //这个资源无法找到...
};add.h
#include "dhk.h"
class AFX_EXT_CLASS CAdd
{
public:
void add();
CAdd();
~CAdd();
};add.cpp
void CAdd::add()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDhk dhk;
dhk.DoModal();
}将dll,lib和add.h复制到exe测试文件目录中
exe文件中什么都没写,只是在菜单project->setings...添加了lib库,在对话框的头文件中
#include "add.h"
class CDlltestDlg : public CDialog
编译就显示d:\work\vc\dlltest\dhk.h(21) : error C2065: 'IDD_DHK_DIALOG' : undeclared identifier
请问这是为什么?我是不是少了哪步没做?
DLL中代码:
class CDhk : public CDialog
{
// Construction
public:
CDhk(CWnd* pParent = NULL); // standard constructor// Dialog Data
//{{AFX_DATA(CDhk)
enum { IDD = IDD_DHK_DIALOG }; //这个资源无法找到...
};add.h
#include "dhk.h"
class AFX_EXT_CLASS CAdd
{
public:
void add();
CAdd();
~CAdd();
};add.cpp
void CAdd::add()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDhk dhk;
dhk.DoModal();
}将dll,lib和add.h复制到exe测试文件目录中
exe文件中什么都没写,只是在菜单project->setings...添加了lib库,在对话框的头文件中
#include "add.h"
class CDlltestDlg : public CDialog
编译就显示d:\work\vc\dlltest\dhk.h(21) : error C2065: 'IDD_DHK_DIALOG' : undeclared identifier
请问这是为什么?我是不是少了哪步没做?
或者把IDD_DHK_DIALOG在头文件中定义
IDD_DHK_DIALOG在dll中还是在exe中的头文件定义?能否写详细点?
建议直接把DLL中的Resourc.h中的IDD_DHK_DIALOG的定义在你的EXE中#define下就可以了。
在DLL包含对话框还真难哦
先谢谢各位,结贴了