Autor Beitrag
Danny87
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 688

Windows 10 Pro 64bit
Sprachen: HTML, PHP, JavaScript, Delphi || IDE: RAD Studio 10.1 Berlin Starter, WeBuilder
BeitragVerfasst: Fr 22.12.06 16:06 
Hey Leute,

ich habe ein Package "pkg001.bpl" mit einer Unit "uFunc.pas" und habe dieses mit
ausblenden Delphi-Quelltext
1:
LoadPackage("pkg001.bpl");					

geladen.
Bis dahin funktionierts.
Aber wie kann ich nun zum Beispiel die Funktion "GetChange();" aufrufen bzw benutzen?
Ich habe die Funktion folgendermaßen in uFunc.pas deklariert:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
function GetChange(sUsr : string):integer;
begin
{...}
end;


Gruss
Daniel
Danny87 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 688

Windows 10 Pro 64bit
Sprachen: HTML, PHP, JavaScript, Delphi || IDE: RAD Studio 10.1 Berlin Starter, WeBuilder
BeitragVerfasst: Mo 25.12.06 23:12 
Hat wirklich keine eine Idee?
Ich weiss auch leider nicht genau wonach ich suchen muss/soll.
Ich freue mich übrigens auch über Links zur Lösung oder so was ;-) *g*

Gruss
Daniel
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Di 26.12.06 00:10 
Hmm, also ich hab schon ein wenig mit bpls gearbeitet. Aber eigentlich machen bpls erst Sinn, wenn du auch OOP werden willst. Ansonsten tuen es DLLs genauso.

Was jetzt alles im Detail mit BPLs möglich ist, würde mich teilweise auch noch interessieren, aber:
Du könntest dir ja eine Klasse schreiben, die diese Procedure schon beinhaltet (aber virtual und evtl. auch abstrakt). Im Package leitest du von dieser Klasse ab und überschreibst diese Methoden via override.

Das ist alles sehr ausführlich, ich kam auf die ganze Sache über dieses Topic. Es ist irgendwie so jetzt schwer zu erklären. Wenn du willst, kannst du dich mal bei mir über ICQ melden (s. Profil) und ich kann dir ein paar Codestücke geben, was ich bisher habe.

Gruß alias5000

_________________
Programmers never die, they just GOSUB without RETURN
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 26.12.06 00:20 
Wobei ein Problem bei mir die Geschwindigkeit war. Ich biete für eines meiner Programme Plugin-Unterstützung an. Dabei können auch Packages als Plugins benutzt werden. Leider laden die Packages (bei meinen Tests jedenfalls) deutlich langsamer als "normale" DLLs.
Aus dem Grund musste ich das Laden dieser Plugins in einen Hintergrundthread verlagern... Nur die DLL-Plugins werden im Hauptthread geladen.

Ich glaube eigentlich nicht, dass es an meiner Implementierung lag, aber ausschließen kann ich es nicht. Der Aufruf von LoadPackage war jedenfalls das was so lange gedauert hat. (Im Gegensatz zu LoadLibrary eben)
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 26.12.06 02:56 
LoadLibrary läd einfach nur die DLL und führt deren Main-Methode aus.
Bei LoadPackage wird neben dem LoadLibrary-Aufruf noch die Halbe Anwendung und Funktionstabelle gepatcht, weshalb das natürlich um einiges länger brauch ... Wenn man also nicht unbedingt OOP brauch, sollte man Packages vermeiden ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Danny87 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 688

Windows 10 Pro 64bit
Sprachen: HTML, PHP, JavaScript, Delphi || IDE: RAD Studio 10.1 Berlin Starter, WeBuilder
BeitragVerfasst: Di 26.12.06 03:55 
Also, der Grund für diesen Thread ist das Ende von diesem Thread ;)
Die Idee war, die Funktion aus der dort besprochenen dll in ein Package zu packen und es so zu versuchen.

Gruss

Daniel
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 26.12.06 10:46 
Naja, ich schreib dazu mal was in dem Thread. Ich denke das kann man einfach anders lösen...