CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

我的头发要抓掉了,编译时出现一个莫名的错误,解决不了:(

楼主cyxcry(稀奇虫子)2003-08-04 20:43:58 在 VC/MFC / 基础类 提问

用VC编个程序,没有用向导,但Use   MFC   in   a   Shared   DLL.产生的主窗口由CMainFrame派生,编译时下列程序段中出现两个错误:  
   
  #if   !defined(AFX_MODELESSDLG_H__9F273FA0_D4B9_4BB7_B6D8_83C6E5C39843__INCLUDED_)  
  #define   AFX_MODELESSDLG_H__9F273FA0_D4B9_4BB7_B6D8_83C6E5C39843__INCLUDED_  
   
  #if   _MSC_VER   >   1000  
  #pragma   once  
  #endif   //   _MSC_VER   >   1000  
  //   ModelessDlg.h   :   header   file  
  //  
   
  /////////////////////////////////////////////////////////////////////////////  
  //   CModelessDlg   dialog  
   
  class   CModelessDlg   :   public   CDialog  
  {  
  //   Construction  
  public:  
  CModelessDlg(CWnd*   pParent   =   NULL);       //   standard   constructor  
   
  //   Dialog   Data  
  //{{AFX_DATA(CModelessDlg)  
  enum   {IDD=IDD_MODELESS_DLG};(此处报错!此处报错!此处报错!)  
  int m_nHeight;  
  int m_nWidth;  
  int m_nUnits;  
  //}}AFX_DATA  
   
   
  //   Overrides  
  //   ClassWizard   generated   virtual   function   overrides  
  //{{AFX_VIRTUAL(CModelessDlg)  
  protected:  
  virtual   void   DoDataExchange(CDataExchange*   pDX);         //   DDX/DDV   support  
  virtual   void   PostNcDestroy();  
  //}}AFX_VIRTUAL  
   
  //   Implementation  
  //   Generated   message   map   functions  
  //{{AFX_MSG(CModelessDlg)  
  virtual   void   OnCancel();  
  virtual   void   OnOK();  
  afx_msg   void   OnReset();  
  //}}AFX_MSG  
  DECLARE_MESSAGE_MAP()  
  };  
   
  //{{AFX_INSERT_LOCATION}}  
  //   Microsoft   Visual   C++   will   insert   additional   declarations   immediately   before   the   previous   line.  
   
  #endif   //   !defined(AFX_MODELESSDLG_H__9F273FA0_D4B9_4BB7_B6D8_83C6E5C39843__INCLUDED_)  
  错误信息如下:  
  Compiling   resources...  
  Compiling...  
  MainFrm.cpp  
  ModelessDlg.cpp  
  PracticeApp.cpp  
  i:\my   documents\my   projects\practice\modelessdlg.h(21)   :   error   C2065:   'IDD_MODELESS_DLG'   :   undeclared   identifier  
  i:\my   documents\my   projects\practice\modelessdlg.h(21)   :   error   C2057:   expected   constant   expression  
  Error   executing   cl.exe.  
   
  Practice.exe   -   2   error(s),   0   warning(s)  
   
  我找了半天也找不出来,对话框资源都定义了,没有什么低级错误.以前用MFC以不用向导的方式“手动”编程也出现过类似的资源方面的错误,有时Rebuild   All一下就解决了,但这次没那么幸运,麻烦高手指导一下:) 问题点数:50、回复次数:6Top

1 楼steedhorse(晨星)回复于 2003-08-04 20:50:20 得分 10

是不是对话框的ID后来被你改掉了?已经不叫“IDD=IDD_MODELESS_DLG”了?Top

2 楼yuilan(于连)回复于 2003-08-04 21:05:02 得分 10

#include   "resource.h"  
   
  Top

3 楼AkiraChing(水银)回复于 2003-08-04 21:13:16 得分 10

在resourceview里面右键单击任意资源,选中resource   symbol,看看有没有IDD_MODELESS_DLG的定义,或者直接看看对话框的属性ID是什么,如果不是IDD_MODELESS_DLG则把它改为IDD_MODELESS_DLG.Top

4 楼shaohua(流氓大亨文盲高官)回复于 2003-08-04 21:13:46 得分 20

yuilan(于连)   兄的办法应该能帮你解决问题,如果yuilan(于连)兄的办法无效,那么你的  
  resource.h中肯定没有#define   IDD_MODELESS_DLG     XXXXX   之类的代码,(其中XXXX为一个  
  唯一的资源ID,即整数,如果没有,你可以自己加一个,要保证该整数不和已有的冲突,同  
  时注意resource.h文件底部的几个Next,不要让他们的范围包括你的ID。  
  Top

5 楼cyxcry(稀奇虫子)回复于 2003-08-04 21:26:13 得分 0

yuilan(于连)   兄真厉害,果真解决了,谢谢Top

6 楼cyxcry(稀奇虫子)回复于 2003-08-04 21:30:02 得分 0

我感觉#include   "..."用的有点混乱,标准的写法一般是写在哪些文件里   *.cpp还是*.h?Top

相关问题

  • 莫名奇妙的编译错误
  • 莫名其妙的函数overload编译错误
  • 一个编译错误请帮忙:莫名其妙的fatal error C1004
  • 编译错误
  • 编译错误!!
  • 编译错误??
  • 编译错误!!
  • 编译错误???
  • 编译错误
  • 编译错误

关键词

  • 解决
  • virtual
  • cmodelessdlg
  • modelessdlg
  • modeless
  • e5c39843
  • idd
  • afx
  • intm
  • yuilan

得分解答快速导航

  • 帖主:cyxcry
  • steedhorse
  • yuilan
  • AkiraChing
  • shaohua

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo