关于头文件的问题

yuanreid 2002-08-31 10:59:39
a.h需要include c.h和b.h
b.h需要include c.h和a.h
但这样作会报c.h中的变量重复定义,怎么办
...全文
39 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
maxying 2002-09-01
  • 打赏
  • 举报
回复
你试试这样呢?
#define NO_WIN32_LEAN_AND_MEAN
有时使用Shell API函数的时候就会出现重复定义错误,加上这个语句就可以了~~~
yuanreid 2002-09-01
  • 打赏
  • 举报
回复
如果只在a中使用互斥对象就没有问题,奇怪
yuanreid 2002-09-01
  • 打赏
  • 举报
回复
maxying(螃蟹) 我试了一下还是不行
yuanreid 2002-08-31
  • 打赏
  • 举报
回复
这些宏定义我都检测了没有问题,关键是我用了VCL的互斥对象也就是TCriticalSection类,a和b都用到了,link时报
[Linker Warning] Public symbol '_LockSection' defined in both module D:\ESME AGENT\ESME_AGENT.OBJ and D:\ESME AGENT\THREAD.OBJ

_LockSection不是我定义的
szbug 2002-08-31
  • 打赏
  • 举报
回复
请问如果采用宏定义还有可能出现你所说的问题吗?
yuanreid 2002-08-31
  • 打赏
  • 举报
回复
我的头文件都没有问题就是这个头文件<ScktComp.hpp>会报警,这个只有在a中进行了包含,b.h中也有用到,但是编译时会警告而不是错误,说某个类在a和b中都有
kingcaiyao 2002-08-31
  • 打赏
  • 举报
回复
你注意:
#ifndefine UNIT1H//这里定义的UNIT1H,存储这个单元的文件最好是用Unit1.h.
#define UNIT1H
.....
#endif
钛哥 2002-08-31
  • 打赏
  • 举报
回复
不是有宏定义吗,怎么会重复?

例如
#ifndef Form1H
#define Form1H

......


#endif


13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧