首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

Build [C++ Error] CCALENDR.h(47): E2015 Ambiguity between 'TGridDrawState

2013-01-09 
Build[C++ Error] CCALENDR.h(47): E2015 Ambiguity between 'TGridDrawState' andC++builder编

Build [C++ Error] CCALENDR.h(47): E2015 Ambiguity between 'TGridDrawState' and
C++builder编译时出现如下问题:
Build
  [C++ Error] CCALENDR.h(47): E2015 Ambiguity between 'TGridDrawState' and 'Grids::TGridDrawState'


网上搜索各种方法均不行,急。。。。。。。。。。
[解决办法]
看这里:http://www.ccrun.com/article.asp?i=1003&d=15f173
[解决办法]
那么,说说,你的工程中用到了什么组件?尽量详细一些。
[解决办法]
我这里没有 AlmDev.BusinessSkinForm 控件,没办法帮你测试。你试着创建一个新工程,只加入一个bsskinstringgrid控件,然后看出这个提示么?尝试修改包含头文件的顺序。
[解决办法]
用到的地方加个前缀Grids::TGridDrawState 难道不行
不行就自定义事件,然后给事件赋值

[解决办法]
'TGridDrawState' and 'Grids::TGridDrawState'
C++中,名称冲突本来是用namespace来解决的。可是所有生成的 Hpp 中,为了方便,均加上了 using  namespace XXXX 字样,使得名字空间的作用减弱了。这情况下,当出现冲突时,只能加上名字空间来指出是使用哪个变量。并没有什么好办法。

注意整理你的头文件,将删掉没有用的头文件。冲突的地方不多时,将需要的地方封装成一个函数供调用,以避免名称冲突,也是一种解决方式。如果只是为了使用某控件,就得仔细考虑下了,有些控件因为名称冲突是相互不兼容,不能同时出现的,除非你改控件源码。

热点排行