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

这是什么变态的错误啊?我咬牙切齿了!(好像跟头文件包含顺序有关系)

楼主Veeve()2003-09-01 21:54:46 在 C++ Builder / 基础类 提问

下面摘自我的工程文件  
   
  按照这个顺序:  
  #include   "Share.h"  
  #include   "Login.h"  
  #include   "Main.h"  
  #include   <vcl.h>  
  #pragma   hdrstop  
  ......  
  编译出错:  
  [C++   Error]   Contnrs.hpp(23):   E2450   Undefined   structure   'DELPHICLASS'  
  [C++   Error]   Contnrs.hpp(23):   E2450   Undefined   structure   'DELPHICLASS'  
  [C++   Error]   Contnrs.hpp(23):   E2449   Size   of   'TObjectList'   is   unknown   or   zero  
  [C++   Error]   Contnrs.hpp(24):   E2238   Multiple   declaration   for   'TObjectList'  
  ......(还有一长串)  
   
   
  改变头文件包含顺序:  
  #include   <vcl.h>  
  #include   "Share.h"  
  #include   "Login.h"  
  #include   "Main.h"  
  ......  
  则出错:  
  [C++   Error]   SysConst.hpp(22):   E2316   'ResourceString'   is   not   a   member   of   'System'  
  ......  
   
   
  到底什么原因?我被困了好长时间了,帮帮忙! 问题点数:100、回复次数:9Top

1 楼mme(dog)回复于 2003-09-01 23:49:32 得分 20

提供一个意见  
  你把那些头文件一个一个地加上去,每加一个就编译一次,这样就容易看出哪个出了毛病了.  
  还有就是你自己的头文件有没有用了  
  #ifndef   XXXH  
  #define   XXXH  
   
  .....  
  #endif  
   
  这样的结构来避免重复包含...Top

2 楼ThinkX(秋天的树)回复于 2003-09-02 00:05:46 得分 15

不要把自定义的头文件放到  
  #pragma   hdrstop  
  和  
  #include   <vcl.h>  
  的前面Top

3 楼bigwhiteshark(变性鲨鱼)回复于 2003-09-02 02:20:29 得分 15

实际上它已经给出了线索啦!!  
  你只要到   Contnrs.hpp(23)   看   'TObjectList'   它的解释是   unknown   or   zero  
  然后对照自己写的代码看看  
   
  我给的是方法呀Top

4 楼fathappy(我是猫)回复于 2003-09-02 08:13:14 得分 15

偶也认为,关键是E2449   Size   of   'TObjectList'   is   unknown   or   zero。Top

5 楼yyt(菜鸟)回复于 2003-09-02 09:14:20 得分 15

可能是程序中用到关于TObjectList的地方有错误Top

6 楼supwjhuLoveCjj(常来看看)回复于 2003-09-02 09:37:52 得分 20

把TObjectList减去,再加进来看一下。Top

7 楼Veeve()回复于 2003-09-02 09:40:31 得分 0

我已经基本否认是代码的原因了,因为我把工程所有的单元文件都从工程Remove掉,仅留下  
  #include   <vcl.h>  
   
  WINAPI   WinMain(HINSTANCE,   HINSTANCE,   LPSTR,   int)  
  {  
      return   0;  
  }  
  错误依然。  
   
  然后我试验后有下面的现象,  
  新建一个工程,编译,OK  
  ->用原来的工程文件名称保存,编译,OK  
  ->将所有的单元Add   to   project,编译,OK  
  ->按照原来工程文件的内容添加  
          #include   "Share.h"  
          #include   "Login.h"  
          #include   "Main.h"  
      添加WinMain函数里的代码,编译,OK  
   
  保存上面所做的工作,下面的任何一步都会带来见鬼的错误,  
  ->把原来工程文件里的内容复制粘贴到新工程文件里,编译出错,不保存关闭工程(甚至退出BCB),再次打开工程,错误依然。(SHIT,难道我拷贝的哪些纯文本里还有什么暗疮不成?)  
  ->参照我原先的设定,我把Project/Options/Packages/Build   with   runtime   packages去掉,编译,又是哪些错,不保存关闭工程甚至退出,再次打开后就再也编译不过去了。  
  ->还有我是先把老的工程文件拷贝粘贴到新工程文件里,把除了#include   <vcl.h>     ...WinMain(){}   之外的所有代码都注释掉,编译是好的,然而我去掉任何一个注释编译就再也通不过了。  
   
  反正是很奇怪很奇怪的,我感觉可能是BCB本身的缺陷,哦对了,我用的是BCB6.0   。顺便问一下,谁知道BCB6.0补丁包哪里有下载?我想试试  
  Top

8 楼supwjhuLoveCjj(常来看看)回复于 2003-09-02 09:49:16 得分 0

是不是你有的该包含在头文件中的而你在.cpp文件中来#include的。Top

9 楼supwjhuLoveCjj(常来看看)回复于 2003-09-02 09:51:29 得分 0

是不是你把该包含在   .h文件的在   .cpp中   #include的Top

10 楼Veeve()回复于 2003-09-12 17:26:43 得分 0

没有答案,最后重建工程解决的Top

11 楼TR@SOE()回复于 2003-09-12 17:30:53 得分 0

一定记得要先include系统的头文件。Top

相关问题

  • 大侠请看:好变态的错误!!(高分求教)
  • 错误 CS1009 无法识别的脱离顺序
  • 两行不相干的代码,调换顺序,为什么会发生错误?
  • 高手来看看,为什么我的数据库输出顺序是错误的?
  • 在javascript中顺序执行语句,如果前一句出现非语法错误,后一句还会执行吗?
  • 用引用变量实现对三个变量按由小到大的顺序排序这个代码提示这种错误真怪啊
  • 变态的 BUG
  • 变 态的csdn..................................................................
  • 执行顺序
  • 记录顺序

关键词

  • c++
  • 编译
  • 文件
  • 代码
  • bcb
  • tobjectlist
  • contnrs
  • 工程
  • 顺序
  • 错误

得分解答快速导航

  • 帖主:Veeve
  • mme
  • ThinkX
  • bigwhiteshark
  • fathappy
  • yyt
  • supwjhuLoveCjj

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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