Hvala, ali nisam uspeo da promenim varijablu iz plugina.. Glavni program izgleda ovako:
Code:
program MainProgram;
uses
Windows,
SysUtils,
Variables in 'Variables.pas';
var
pHnd : HMODULE;
NekaFja : function(const AParam : String) : DWORD;
begin
pHnd := LoadPackage('Package1.bpl');
If pHnd <> 0 Then
Begin
@NekaFja := GetProcAddress(pHnd, 'NekaFunkcija');
If Assigned(NekaFja) Then
Begin
res := 34;
NekaFja('03493409');
MessageBox(0, PAnsiChar(IntToStr(res)), '', mb_OK);
End;
UnloadPackage(pHnd);
End;
end.
Variables.pas unit:
Code:
unit Variables;
interface
uses
Windows;
var
res : DWORD;
implementation
end.
I na kraju, TestUnit.pas, tj package-plugin:
Code:
unit TestUnit;
interface
implementation
uses
Windows, SysUtils, Variables;
function NekaFunkcija(const AParam : String) : DWORD;
begin
// result := StrToInt(AParam);
res := 324234;
result := 0;
end;
exports
NekaFunkcija;
end.
Kad startujem MainProgram, messagebox vrati "34", umesto 324234.
Prikacio sam source i u attachmentu.
//edit: Kad kompajliram package (TestUnit), compiler javlja Unit "variables" implicitly imported into package, mada pretpostavljam da je to normalno