0

DLL を使用しているフォームを取得しました。DLL を介してフォームのハンドルを取得する方法はありますか?

このようなもの:

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

文法ミスでごめんなさい。

4

1 に答える 1

4

DLL がフォーム ウィンドウを自動的に検出する方法はありません。フォーム自体は、DLL がエクスポートする関数などによって、使用する HWND を DLL に伝える必要があります。FindWindow()またはを使用しEnumWindows()ます。

より良いオプションは、フォームがハンドラーを割り当てることができるコールバックを公開するように DLL を記述し、必要に応じて DLL にそれを呼び出させ、呼び出されたときに何をすべきかをフォームに決定させることです。そうすれば、DLL はフォームについて何も知る必要がありません。

于 2013-11-15T07:56:00.833 に答える