掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
フォーム付DLLでActionMainMenuBarを使用した時 (ID:28840)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になっております。 勉強でフォーム付DLLを作成しエラーなく呼び出し・終了ができるところまではできたのですが、DLL側のフォームにActionMainMenuBarを配置した場合にExe側からDLLフォームを2回以上呼び出してフォームを最小化などの操作した場合にエラーが発生するようになりました。 色々調べていたのですがActionMainMenuBarに原因があるようでDLL側のフォームを閉じる際にActionMainMenuBarをFreeするとエラーは出なくなりました。 ボタンやラベルなどを配置しても特にエラーにはならないのですがActionMainMenuBarを配置しFreeしてあげないとエラーになるのがよくわかりません。 私自身がなにか変なことをしているのかもしれませんがソースを記載させて頂きます。 環境は WindowsXP SP2 Delphi7 Pro(Update2) どうぞよろしくお願いします。 --- Exe側(抜粋) --- type TDLL_TEST = procedure (hWnd:THandle);stdcall; var DLL_TEST : TDLL_TEST; procedure TForm1.Button1Click(Sender: TObject); begin @DLL_TEST := GetProcAddress(LoadLibrary(PChar('Project2.dll')),PChar('DLL_TEST')); DLL_TEST(Application.Handle); end; ---DLL側--- library Project2; uses Windows, Forms, Unit2 in 'Unit2.pas' {Form2}; //Form2にはActionMainMenuBarとActionManagerのみ貼り付けています。 {$R *.res} procedure DLL_TEST(hWnd:THandle);stdcall; begin try Application.Handle := hWnd; Form2 := TForm2.Create(Application); Form2.ShowModal; finally Form2.ActionMainMenuBar1.Free; //↑を追加したらエラーが出なくなった。 Application.Handle := 0; FreeLibrary(0); Form2.Release; end; end; exports DLL_TEST; begin end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.