如何获取正在使用我的DLL的表单的句柄?

时间:2013-11-15 07:24:06

标签: delphi delphi-xe2 delphi-7

我有一个使用DLL的表单。  有办法通过DLL获取表单的句柄吗?

这样的事情:

SetWindowText(HandleOfTheForm, 'This Program is using my DLL');

对语法错误感到抱歉。

1 个答案:

答案 0 :(得分:4)

如果没有关于它的一些先验知识,DLL无法自动发现窗体窗口。 Form本身需要告诉DLL使用哪个HWND,例如通过DLL导出的函数,或者通过给Form提供DLL可以查找的已知/可预测的类名和/或窗口标题,例如使用FindWindow()EnumWindows()

更好的选择是编写DLL以公开Form可以为其分配处理程序的回调,然后让DLL在需要时调用它,让表单决定在调用时做什么。这样,DLL根本不需要了解有关Form的任何信息。