Привет! Использую EmbeddedWB. EWB динамически создается на форме, которая находится в dll. Но после выхода из функции вылетает ошибка 'Access violation at address...'. Это у всех так или у меня тока? Код программы
| Код | // ВЫЗЫВАЮЩАЯ ФУНКЦИЯ procedure TForm1.Button7Click(Sender: TObject); var HandleEWB: Thandle; show: procedure; begin handleEWB := LoadLibrary('libProject2.dll'); show := getProcAddress(handleEWB,'ShowModalForm'); show; FreeLibrary(handleEWB); end;
// БИБЛИОТЕКА library libProject2;
uses SysUtils, Classes, Forms, libUnit1 in 'libUnit1.pas' {frm};
{$R *.res}
exports ShowModalForm;
begin end.
// ФОРМА unit libUnit1;
interface
uses Forms, Windows,Controls,SHDocVw_EWB, EmbeddedWB, Classes, OleCtrls;
type Tfrm = class(TForm) EmbeddedWB1: TEmbeddedWB; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end;
var frm: Tfrm;
procedure ShowModalForm; implementation
{$R *.dfm}
procedure ShowModalForm; begin frm := Tfrm.Create(nil); frm.ShowModal; frm.Free; end; end.
|
Может, я неправильно что-то делаю!? |