BCB设计时组件编译错误

如今谁用BCB做可视化组件设计简直就被人笑掉大牙,可惜多年前一个项目需要升级到Rad Studio XE,里面有部分组件用BCB做的,组件本身比较简单,但编译出错,提示propsys.h中的 IPropertyDescription重复定义,抛出十几个错误:

[BCC32 Error] propsys.h(1798): E2238 Multiple declaration for 'IPropertyDescription'
  Full parser context
    ExtToolBoxReg.cpp(6): #include ExtToolBoxReg.h
    ExtToolBoxReg.h(7): #include c:\embarcadero\rad studio\8.0\include\windows\vcl\DesignEditors.hpp
    DesignEditors.hpp(25): #include c:\embarcadero\rad studio\8.0\include\windows\vcl\ToolsAPI.hpp
    ToolsAPI.hpp(22): #include c:\embarcadero\rad studio\8.0\include\windows\vcl\DockForm.hpp
    DockForm.hpp(24): #include c:\embarcadero\rad studio\8.0\include\windows\vcl\Dialogs.hpp
    Dialogs.hpp(20): #include c:\embarcadero\rad studio\8.0\include\windows\rtl\CommDlg.hpp
    CommDlg.hpp(19): #include c:\embarcadero\rad studio\8.0\include\windows\rtl\ShlObj.hpp
    ShlObj.hpp(26): #include c:\embarcadero\rad studio\8.0\include\windows\rtl\PropSys.hpp
    PropSys.hpp(22): #include c:\embarcadero\rad studio\8.0\include\windows\sdk\propsys.h

[BCC32 Error] propsys.h(2081): E2015 Ambiguity between 'IPropertyDescription' and 'Designintf::IPropertyDescription'
  Full parser context
    ExtToolBoxReg.cpp(6): #include ExtToolBoxReg.h
    ExtToolBoxReg.h(7): #include c:\embarcadero\rad studio\8.0\include\windows\vcl\DesignEditors.hpp
    DesignEditors.hpp(25): #include c:\embarcadero\rad studio\8.0\include\windows\vcl\ToolsAPI.hpp
    ToolsAPI.hpp(22): #include c:\embarcadero\rad studio\8.0\include\windows\vcl\DockForm.hpp
    DockForm.hpp(24): #include c:\embarcadero\rad studio\8.0\include\windows\vcl\Dialogs.hpp
    Dialogs.hpp(20): #include c:\embarcadero\rad studio\8.0\include\windows\rtl\CommDlg.hpp
    CommDlg.hpp(19): #include c:\embarcadero\rad studio\8.0\include\windows\rtl\ShlObj.hpp
    ShlObj.hpp(26): #include c:\embarcadero\rad studio\8.0\include\windows\rtl\PropSys.hpp
    PropSys.hpp(22): #include c:\embarcadero\rad studio\8.0\include\windows\sdk\propsys.h

原因是组件中派生了TComponentEditor和TPropertyEditor的子类,用于设计时组件的菜单操作,经过1天的研究,原来是这两个Editor单元中没有#include <vcl.h>的缘故,吐血不止,但为什么BCB6不会报错?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值