.| Autor | Beitrag |
|---|---|
|
000 25.01.2002, 11:04 apfelkorn |
hartgesottene linux-programmierer (prefi) werden mich wohl jetzt umbringen wollen, aber mir ist das im Moment wurscht. Es ist mir schon klar, wie man Funktionen in einer DLL aufruft, aber meine Frage ist folgende: |
|
Profil || Suche |
|
001 25.01.2002, 11:59 CY4N1D3 |
die frage ist jetzt nicht genau. meinst du das du ein programm hast welches eine DLL benutzt, aus welcher du eine funktion importieren willst um das hauptprogramm zu steuern ? hauptprogramm -> dll <- dein programm du kannst die gleiche dll benutzen, nur hast du dann keine möglichkeit die speicherbereiche des hauptprogramms zu nutzen (ausser über windowsmessages oder über etwas was mir gerade nicht einfällt :>) --ob nun delphi, c oder java. kein programm lässt sich mit allen 3en gleichschnell entwickeln. |
|
Profil || Suche |
|
002 25.01.2002, 14:35 Hessie J. |
Im allgemeinen, wie schon richtig im Titel angedeutet, durch Callback-Funktionen. Man übergibt der DLL also die Adresse einer im Hauptprogramm aufzurufenden Funktion. Die DLL muss diese Funktionalität natürlich entsprechend vorsehen. -- |
|
Profil || Suche |
|
003 25.01.2002, 15:34 Prefect |
Ja, das ist die normale Methode, übrigens rein auf C bezogen. Zwar funktioniert das mit C++-Funktionen genauso, aber sobald du Klassen hin- und herimportieren willst kriegst du Probleme. Es gibt aber noch eine andere Methode, zumindest unter ELF-Unixen: cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
004 25.01.2002, 16:47 apfelkorn |
naja, das hilft ja schonmal weiter... ist allerdings trotzdem noch eine Frage: wie kann ich dann die Pointer *** elegant *** dahin übermitteln und dann einsetzen... also rein theoretisch isses dann ja wie mit dem importieren von funktionen... ich importiere ins hauptprogramm eine dll-funktion (sagen wir: export_funcs(array_mit_pointern) ) dann habe ich schonmal die pointer in der dll-funktion. Kann ich dann jetzt wie beim import im hauptprogramm einfach "(*sowiesofunktion()) = GetProcAddress(array_mit_pointern[1])" machen? nebenbei: was für einen datentyp kann ich für einen pointer angeben? [edit] Dieser Beitrag wurde am 25.01.2002 um 18:04 von apfelkorn bearbeitet. |
|
Profil || Suche |

