今天新建了一个对话框文件然后把对话框的头文件加到StdAfx.h中了,然后报告找不到对话框资源的ID。
要明白一点,所有VC框架产生的类源文件的第一行必须是#include "StdAfx.h",也就是说StdAfx文件最先被编译。
那么不会利用View、Doc、App中的变量或代码的类、结构体和其他头文件都可以加到StdAfx.h里,全局变量和函数也可以加到这里。由向导产生的对话框类的IDD资源要映射到resource.h的宏,而resource.h与View和Doc有关的宏要随着View和Doc的产生才产生。此时,先编译dlg.h,也就是要利用resource.h,而此时View类和Doc类App类等还没有生成,所以导致C2065未定义标示符和C2057错误产生。
// Dialog Data
//{{AFX_DATA(CSavePointDlg)
enum { IDD = IDD_SAVE_POINT };
int m_nPtNo;
//}}AFX_DATA
error C2065: 'IDD_SAVE_POINT' : undeclared identifier
error C2057: expected constant expression
重新将dlg.h添加到需要用到的View.h视图类或其他类,编译运行通过。