掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
フォーム付DLLでActionMainMenuBarを使用した時 (ID:28841)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
簡単に調べてみたところ ActionMainManuBar.Destroy で Application.Handle を使用していますが destructor TCustomActionMainMenuBar.Destroy; var Hook: TWindowHook; begin Hook := MainWndHook; SendMessage(Application.Handle, CM_WINDOWHOOK, 1, Integer(@@Hook)); inherited; end; のでフォームが閉じる前に Application.Handle を 0 にしてはいけません Form2.Free; Application.Handle := 0; もしくは Form2.Release; Application.ProcessMessages; //CM_RELEASEを処理させる Application.Handle := 0; Release でCM_RELEASE PostMessage をそのまま処理が戻ってきて Free される前に Application.Handle := 0;が実行されてしまい TCustomActionMainMenuBar.Destroy を実行する際に Application.Handle に 0が入ってしまっています TCustomActionMainMenuBar.Destroy で MessageBox(0,PChar(IntToStr(Application.Handle)),'',0) とやればわかるでしょう CM_RELEASE を SendMessage に変えるとエラーが出ません。 あと FreeLibrary(0); がDLL内にあるのかが不明です
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.