MFC扩展DLL添加对话框资源时对话框ID是“未声明标识符”
1 问题提出
在MFC扩展DLL中添加对话框资源后,为该对话框资源添加对应的类之后,编译程序会显示“error C2065: “IDD_DIALOG1”:未声明的标识符”,其中IDD_DIALOG1是添加的对话框资源ID。
2 问题分析
2.1 MFC应用程序中没有出现该错误提示的原因
诸如IDD_DIALOG1此类对话框资源ID在resource.h中定义。在MFC应用程序中添加对话框资源并为该资源添加对应的类之后,类向导会在该类的头文件中自动包含应用程序的头文件:
#include “XXX.h”
其中,XXX是MFC应用程序的名称,在XXX.h中包含了resource.h头文件。
2.2 MFC扩展DLL程序中出现该问题的原因
但是在MFC扩展DLL的项目中,不包含XXX.h,因此,类向导不会在新添加的对话框类的头文件中添加XXX.h,即该对话框类没有包含resource.h头文件。
3 问题解决
此时必须手动在对话框类头文件中包含resource.h头文件。
#include “resource.h”
MFC扩展DLL添加对话框资源时对话框ID是“未声明标识符”
1 问题提出
在MFC扩展DLL中添加对话框资源后,为该对话框资源添加对应的类之后,编译程序会显示“error C2065: “IDD_DIALOG1”:未声明的标识符”,其中IDD_DIALOG1是添加的对话框资源ID。
2 问题分析
2.1 MFC应用程序中没有出现该错误提示的原因
诸如IDD_DIALOG1此类对话框资源ID在resource.h中定义。在MFC应用程序中添加对话框资源并为该资源添加对应的类之后,类向导会在该类的头文件中自动包含应用程序的头文件:
#include “XXX.h”
其中,XXX是MFC应用程序的名称,在XXX.h中包含了resource.h头文件。
2.2 MFC扩展DLL程序中出现该问题的原因
但是在MFC扩展DLL的项目中,不包含XXX.h,因此,类向导不会在新添加的对话框类的头文件中添加XXX.h,即该对话框类没有包含resource.h头文件。
3 问题解决
此时必须手动在对话框类头文件中包含resource.h头文件。
#include “resource.h”