Спасибо за помощь ...
Я поместил пример своего пакета и моего Приложения здесь, чтобы найти, в чем проблема!
У нас есть пакет, не требующий пакетов времени выполнения, таких как VCL и RTL, другими словами, я удалил все библиотеки из раздела Требуется в моем пакете:
мой пакет содержит форму с кодом ниже:
unit MyUnit;
interface
uses
Windows, Forms, StdCtrls, Buttons, Controls, Classes, Dialogs;
type
TMyForm = class(TForm)
MyLabel: TLabel;
MyEdit: TEdit;
PostBtn: TBitBtn;
procedure PostBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MyForm: TMyForm;
implementation
{$R *.dfm}
function ShowForm(FCaption, LCaption : String) : String;
var
F : TMyForm;
begin
F := TMyForm.Create(nil);
try
F.Caption := FCaption;
F.MyLabel.Caption := LCaption;
F.ShowModal;
finally
Result := F.MyEdit.Text;
F.Free;
end;
end;
procedure TMyForm.PostBtnClick(Sender: TObject);
begin
if MyEdit.Text <> '' then
Close
else
ShowMessage('Please Enter Value !');
end;
exports
ShowForm;
end.
Я загружаю этот пакет и вызываю функцию ShowForm, а затем выгружаю пакет:
var
ShowF : function(FCaption, LCaption : String) : String;
MyPkg : HMODULE;
FC, LC : String;
begin
MyPkg := LoadPackage(ExtractFilePath(Application.ExeName)+'MyPackage.bpl');
FC := 'Enter Value ... ';
LC := 'Value : ';
if MyPkg <> 0 then
begin
try
@ShowF := GetProcAddress(MyPkg, 'ShowForm');
if Assigned(ShowF) then
Edit1.Text := ShowF(FC, LC)
else
ShowMessage('Function not found !');
finally
UnloadPackage(MyPkg);
end;
end;
end;
После описанной выше процедуры сделано , AV показывает!
@ Neftalí: Если я просто загружаю и выгружаю Пакет, AV-шоу не выполняется, но я думаю, это потому, что я не вызываю некоторые подпрограммы или объекты или ... что им нужны библиотеки VCL или RTL, если я использую объекты и функции и ... этого пакета, после их использования я получу AV ...
это правда?!
Если я создаю свое приложение с пакетом времени выполнения (VCL и RTL), AV не будет отображаться!
Я путаюсь !! Я хочу использовать пакет BPL без какого-либо пакета времени выполнения ...
спасибо большое ...