编译出错,来看看吧

钛哥 2002-07-22 06:31:16
[Linker Error] Unresolved external '__fastcall Controls::THintWindow::NCPaint(void *)' referenced from D:\GOHINT\GOHINTCOM.OBJ

可我的根本没有重载NCPaint(void *)啊?
我把<Controls.hpp>里的 virtual void __fastcall NCPaint(HDC DC);注释掉后,编译正常,控件也能安装了。但运行起来就出错(估计肯定要错的)。
什么原因?
...全文
77 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
钛哥 2002-07-30
  • 打赏
  • 举报
回复
我是自己在做控件,不属于以上任何情况。
我的解决办法是:用Dephi重做!

顺便问一下,有谁用BCB做控件的?灵猫凤角啊!
JXLEE365 2002-07-27
  • 打赏
  • 举报
回复
漏了对第1种情况的解释:
将第三方控件所在的目录加入本项目的INCLUDE路径和LIB路径。
JXLEE365 2002-07-27
  • 打赏
  • 举报
回复
这个问题遇到过N次。多在以下情况下出现:
1、程序中用到了第三方控件;
2、对成员的声明(在H文件中)与实现(在CPP文件中)不一致;
3、项目管理出现了混乱。
一般说来,你在核查了不是第2种原因后,用下述方法就可解决:
将出问题的UNIT先转移出PROJECT,然后再重新加入即可。
如果还不行,进行更彻底的办法:新建一PROJECT,然后将所有
的UNIT一一加入重新编译即可。
我百试百灵。

钛哥 2002-07-25
  • 打赏
  • 举报
回复
Borland是不是对CBC有歧视?认为CBC 程序员不需要这些?
钛哥 2002-07-25
  • 打赏
  • 举报
回复
CBC 中 Controls.hpp 是这样定义的:
virtual void __fastcall ActivateHint(const indows::TRect &Rect, const AnsiString AHint);

而delphie 中是这样定义
procedure ActivateHint(Rect: TRect; const AHint: string); virtual;

我用 virtual void __fastcall ActivateHint(TRect &Rect, const AnsiString AHint);继承不了CBC中的 ActivateHint,(用delphie可以)
用 virtual void __fastcall ActivateHint(const indows::TRect &Rect, const AnsiString AHint);继承的话改不了Rect。

这不是逼我改Controls.hpp的内容吗!!!
气死我了!!!


NowCan 2002-07-24
  • 打赏
  • 举报
回复
自己重载一下这个函数不知道有没有作用。
NowCan 2002-07-24
  • 打赏
  • 举报
回复
自己重载一下这个函数不知道有没有作用。
钛哥 2002-07-24
  • 打赏
  • 举报
回复
我把CB5又装上,编译运行完全正常!!!
而且CB5中根本没有 Controls.hpp中的THintWindow::NCPaint方法的定义!!
难道又是Bug?
huzhangyou 2002-07-24
  • 打赏
  • 举报
回复
我觉得cb5还好吧
bug要少多了
钛哥 2002-07-23
  • 打赏
  • 举报
回复
将Controls.hpp中的NCPaint方法注释掉,这肯定是不行的。
为什么不行?能不能解释一下
钛哥 2002-07-23
  • 打赏
  • 举报
回复
这一段代码有问题吗?我把他屏蔽就OK,
void __fastcall TGoHint::SetShowHint(bool Value)
{
/*
if (ComponentState.Contains(csDesigning))
{
Value = false;
}
else
{
if (Value)
{
HintWindowClass = __classid(TNewHint);
}
else
{
HintWindowClass = __classid(THintWindow);
}
Application->ShowHint = ! Application->ShowHint;
Application->ShowHint = ! Application->ShowHint;
// SetNewHintFont();
}
*/
}
runnerrunning 2002-07-23
  • 打赏
  • 举报
回复
据我的经验应该是找不到form等,看看
kingcaiyao 2002-07-22
  • 打赏
  • 举报
回复
将Controls.hpp中的NCPaint方法注释掉,这肯定是不行的。
如果你没有重载NCPaint函数,那么可能是控件本身有一定的BUG
kingcaiyao 2002-07-22
  • 打赏
  • 举报
回复
估计是控件本身的原因
RedProgramer 2002-07-22
  • 打赏
  • 举报
回复
顶一下

13,871

社区成员

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

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