Entwickler-Ecke
Sonstiges (Delphi) - prozeduren in dll aus unit
Lemon - Mi 10.12.03 13:53
Titel: prozeduren in dll aus unit
hallo,
kann man die prozeduren einer bestimmten unit auch in einer dll ansprechen????
z.b. prozedur 'laufen' aus 'unit1.pas' soll in der dll 'progs.dll' verwendet werden oder anspechbar sein.
vielen dank schon mal im vorraus.
ErnestoChe - Mi 10.12.03 14:48
Hi,
möchtest du eine Dll schreiben und Funktionen aus einer Unit in deinem Dll-Projekt verwenden? Dann kannst du die Unit einfach deinem Dll-Projekt hinzufügen, wie bei einer normalen Applikation auch. Über Projekt -> Dem Projekt hinzufügen.
Hier [
http://www.tutorials.delphi-source.de/dlls/] gibts ein Dll-Tutorial. Schau's dir am besten mal an.
MFG
- Ernesto -
himitsu - Mi 10.12.03 15:06
Titel: prozeduren in dll aus unit
Entweder du bindest die entsprechende Unit in eine DLL mit ein:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Library progs;
Uses SysUtils, Classes, Unit1;
{$R *.res}
Procedure irgendwas; Begin laufen(Parameter); End;
Begin End. |
Oder wenn diese Prozedur im Programm und nicht in der DLL ist, übergibst du der DLL das Handle dieser Prozedur:
(ACHTUNG: das ist jetzt nur ein Bespiel - es muß noch etwas angepasst werden)
Im Programm:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Procedure InitDLL(Z: Pointer); external 'progs.dll';
Procedure laufen(Parameterdefinition); Begin ... End;
Procedure irgendwas; Begin InitDLL(@laufen); End; |
In der DLL:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Library progs;
Var laufen: Procedure(Parameterdefinition);
Procedure InitDLL(Z: Pointer); Begin @DLLFunktion := Z; End;
Procedure irgendwasanderes; Begin laufen(parameter); End;
Begin End. |
Ob man die aufgerufene Prozedur (laufen) auch dazu bringen kann irgendetwas im Programm zu machen glaube ich zwar nicht ganz, jeden falls ist es etwas schwerer anzustellen.
Lemon - Mi 10.12.03 16:15
habe die units jetzt so eingebunden;
...
Uses SysUtils,
Classes,
Unit2 in '..\..\Unit2.pas' {Form2},
Unit3 in '..\..\Unit3.pas' {Form3};
...
leider bekomme ich die fehlermeldung, dass ein undefinierter bezeichner gefunden wurde, wenn ich z.B auf die prozedur 'vor' zugreife.
warum????
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!