在用C++builder6编译一个动态链接库的程序时遇到这样一个问题,如何解决?在线等。。。

wzq1979 2005-12-29 09:53:47
各位大侠,我在用用C++builder6编译一个动态链接库的程序时遇到这样的问题:
在库里重新定义了位图信息头结构体,编译时出错:
"[C++ Error] vcdtype.h(46): E2238 Multiple declaration for 'BITMAPFILEHEADER'"
可如果把该定义结构体屏蔽掉,又提示找不到类型定义:
错误语句:return sizeof(BITMAPINFOHEADER);
"[C++ Error] DibUnit.h(26): E2303 Type name expected
[C++ Error] DibUnit.h(26): E2139 Declaration missing ;"
" [C++ Error] DibUnit.h(40): E2451 Undefined symbol 'BITMAPINFOHEADER'"
请高手指点。
...全文
121 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
CACACACACA 2005-12-29
  • 打赏
  • 举报
回复
加上::试试.
ccrun.com 2005-12-29
  • 打赏
  • 举报
回复
我的QQ:165332
如果方便的话,可以将代码发给我,我帮你调试。
wzq1979 2005-12-29
  • 打赏
  • 举报
回复
可windows.h中又包含了windef.h文件,wingdi.h文件
这样就冲突了。这可咋办?:)您有qq吗?
ccrun.com 2005-12-29
  • 打赏
  • 举报
回复
是的。至少需要包含一个windows.h
wzq1979 2005-12-29
  • 打赏
  • 举报
回复
库的实现本身不需要其它的库文件支持。原来是没有包含其他的文件,但在cb6中的DLL库的工程编译过程中好像又要包含windows.h文件。
ccrun.com 2005-12-29
  • 打赏
  • 举报
回复
CONTEXT在winnt.h中。

如果是做"各种类型定义都是自定义"的,那就一个都不要包含其他的头文件。
wzq1979 2005-12-29
  • 打赏
  • 举报
回复
PCONTEXT 这个结构体也找不到
wzq1979 2005-12-29
  • 打赏
  • 举报
回复
还有这个dll库是不需要windows支持也行的,也就是说各种类型定义都是自定义的。不知道如何实现这种动态链接库的?
ccrun.com 2005-12-29
  • 打赏
  • 举报
回复
因为没找到POINT类型的定义。

#include <windef.h>
wzq1979 2005-12-29
  • 打赏
  • 举报
回复
谢谢。
这个方法我试过,wingdi.h中又会出现错误。
语句:POINT ptPosition;
[C++ Error] wingdi.h(268): E2303 Type name expected
[C++ Error] wingdi.h(268): E2139 Declaration missing ;
。。。。
会不会是cb版本的问题,我原来在cb5里编译通过了的,到了cb6就不行了。
ccrun.com 2005-12-29
  • 打赏
  • 举报
回复
因为在wingdi.h中已经有BITMAPFILEHEADER这个定义了。

如果你的BITMAPFILEHEADER结构和系统提供的一样,可以#include <wingdi.h>而无需自己再定义。

13,824

社区成员

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

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