简单问题:调用Delph函数参数类型问题,解答正确者另贴100分

阿发伯 2007-06-17 09:59:16
本人长期使用Delphi,BCB很少使用,前天把一个Delphi单元包含在BCB工程中,其中的Delphi函数参数中使用了HWND,HDC类型,比如:
procedure Proc(Handle: HWND);
BCB应该自动翻译为:
extern PACKAGE void __fastcall Proc(HWND Handle);
编译没问题,可是却出现类似下面的LINK错误

[ILINK32 Error] Error: Unresolved external void __fastcall Proc(void *)' referenced from UNIT1.OBJ

据我所知HWND在Delphi定义为LongWord,而在C/C++中则定义为void*,我因此修改hpp文件的参数说明,强制转换为DWORD,结果还是不能正确连接。
请BCB老手们帮忙解答一下(对你们来说,这可是再简单不过了),正确答案者另贴100分。在线期待
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿发伯 2007-06-18
  • 打赏
  • 举报
回复
自己顶一下
阿发伯 2007-06-17
  • 打赏
  • 举报
回复
Proc((DWORD)this->Handle);
阿发伯 2007-06-17
  • 打赏
  • 举报
回复
extern PACKAGE void __fastcall Proc(DWORD Handle);

调用 Proc((DWORD)this.Handle);

也是编译通过,连接错误,说明Obj文件的参数也不是DWORD类型
huzhangyou 2007-06-17
  • 打赏
  • 举报
回复
贴出来.hpp部分 我看一下
你修改以后的
huzhangyou 2007-06-17
  • 打赏
  • 举报
回复
从错误看来 很显然

Unresolved external void __fastcall Proc(void *)' referenced from UNIT1.OBJ

是BCB在转化的时候的错误
你看看hpp文件 修改看看

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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