Всем привет! В программе реализована динамическая загрузка dll. После конца процедуры(end) вылезает ошибка. Вопрос: в чем дело? Если не исправить, то как можно отключить вывод об ошибке?
dll:
форма:
После ShowMessage вылезает ошибка, но программа продолжает работать.
dll:
Код |
---|
library dll; uses SysUtils, Classes, Messages, Dialogs; {$R *.res} function ErrorMessage: String; stdcall; begin MessageDlg('About', mtInformation, [mbOK],0); end; exports ErrorMessage; begin end. |
форма:
Код |
---|
unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); type TMyFunc = procedure; var DLLInstance : THandle; begin DLLInstance := LoadLibrary(PChar('dll.dll')); if (DLLInstance = 0) then begin MessageDlg('Невозможно загрузить DLL', mtError, [mbOK], 0); Application.Terminate; end else FreeLibrary(DLLInstance); end; procedure TForm1.Button1Click(Sender: TObject); type TMyFunc = procedure; var ErrorMessage: TMyFunc; DLLInstance : THandle; begin DLLInstance := LoadLibrary(PChar('dll.dll')); @ErrorMessage := GetProcAddress(DLLInstance, 'ErrorMessage'); ErrorMessage( ); FreeLibrary(DLLInstance); ShowMessage('Test'); end; end. |
После ShowMessage вылезает ошибка, но программа продолжает работать.
Изменено: Dominator - 27.05.2011 17:22:04