0

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

像这样的东西:

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

语法错误抱歉。

4

1 回答 1

4

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

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

于 2013-11-15T07:56:00.833 回答