Einzelnen Beitrag anzeigen

1234588

Registriert seit: 14. Jan 2007
Ort: Stuttgart
164 Beiträge
 
#12

Re: aus dll code in hauptanwendung ausführen

  Alt 17. Jan 2008, 18:43
Zitat von QuickAndDirty:
Wenn du die DLL universell einsetzbar machen willst so das die unterschiedliche anwendungen auf ereignisse unterschiedlcih reagiren brauchst du schon eine CallBack Procedur in der du die "Reaktion" unterbringst.
[ot]
mit funktionspointern zu arbeiten macht nicht immer sinn. will man einfache funktionen auslagern bzw. will man sein programm durch ersetzen der dll aktualisieren, ist es sicher sinnvoller wenn man seine dll statisch benutzt. funktionen die vom programm unbedingt gebraucht werden, sollten auch verfuegbar sein. ist die dll nicht verfuegbar, startet das programm erst garnicht. wird die addresse zur funktion zur laufzeit ausgelesen, muesste man manuelles exception handling betreiben (á al 'das programm benoetigt die dll 'miep.dll')
=> mehr aufwand als es wert ist

ein funktionspointer macht sinn, wenn man sein programm durch eine dll erweitern moechte (wie im obigen bsp. if Assigned() then ..).
will man eine unbestimmte anzahl von dll's benutzen, kann man das nur dynamisch (macht ja auch sinn. man kann ja nicht wissen, wieviele dll's noch hinzu kommen werden).

dynamisches benutzen von dll's recht & gut, die benutzung muss aber auch gerechtfertigt sein. imho sind die ganzen winapi funktionen auch nicht dynamisch, sondern statisch niedergeschrieben.
[/ot]

Zitat:
diese dll ist bei mit nämlich eine "plugin" dll die hilfe formen enthält, und man soll/kann bei der installation diese dll abwählen...
ganz einfach. eine dll ist ein fast-programm :o)
eine dll sieht im grunde genau so aus wie ein normales programm. du erstellst einfach dein hilfe fensterchen (als waere es ein anderes programm), speicherst es und oeffnest die *.dpr datei (in einem editor!).
gleich in der ersten zeile aenderst du das 'program' in ein 'library'.
fertig.

benutzen kannst du das ding mit einem einfachen Loadlibrary() call. du mappst einfach die dll in den speicher und dein form fenster wird erstellt. idr. sollte das ding wieder freigegeben werden, sobald das fenster (welches aus der dll gestartet wurde) beendet wird. sollte man versuchen. ansonsten einfach mit FreeLibrary() freigeben :o)
  Mit Zitat antworten Zitat