![]() |
Delphi-Version: 2005
Action in DLL funktioniert nicht
Hi,
ich habe ein Formular erstellt, welches in einer DLL liegt und vom Hauptprogramm aus aufgerufen wird. Die Actions auf dem Formular (aus der DLL) werden nicht aufgerufen. Kann mir jemand sagen, wie ich trotzdem Actions verwenden kann? Gruß Ralf |
AW: Action in DLL funktioniert nicht
Man kannst keine Objekte im Interface einer Dll verwenden. Callbacks sollten aber funktionieren.
|
AW: Action in DLL funktioniert nicht
Hi mkinzler,
schreibst du mit Dialekt? Ich verstehe nicht gerade ob deine Antwort eine Feststellung oder eine Frage ist. Möglichkeit A (Übersetzt) Mann, du kannst doch keine Objekte im Interface einer DLL verwenden! Möglichkeit B (Übersetzt) Mann, kannste keine Objekte im Interface einer DLL verwenden? Davon ab, Callbacks helfen mir nicht. Die funktionalität von mehr als 50 Acitons kann ich nicht von Hand nachbilden. Dank dir, Gruß Ralf |
AW: Action in DLL funktioniert nicht
Ich habe du durc man ersetzt und vergessen, dass kannst durch kann zu ersetzen.
Dann bleibt dir nur die Verwendung von Bpls statt Dlls |
AW: Action in DLL funktioniert nicht
DLLs und die EXE haben ihre eigenen RTTIs und darum kann man Objekte nicht (gut) Sharen.
Und zusätzlich spielt dir auch noch der Speichermanager einen Streich, welcher auch standardmäßig nicht zuläßt, daß man so einfach Speicherbereiche shared. (Stichwort: SharedMemoryManager) Sowas wird ständig im Forum erwähnt. |
AW: Action in DLL funktioniert nicht
Sorry mkinzler, bin manchmal schwer von Begriff. ;)
Das mit dem austauschen des Speichers ist schon klar, und auch nicht das Problem, da das Formular der DLL keine Daten zurück gibt. Eine .bpl habe ich noch nie erstellt und angebunden. Ich würde dann doch eher eine Exe erstellen und die Daten per IPC übertragen das ist für mich am einfachsten. Gruß Ralf |
AW: Action in DLL funktioniert nicht
Ich hab zwar auch noch nie mit BPLs gearbeitet,
aber BPLs sind auch "nur" DLLs, welche aber gegen die genau gleichen gemeinsamen "Codes" gelinkt wurden, welche mit der EXE geschared werden. Außerdem wird der Speichermanager gleich mit geschared. Da nun in der EXE und der DLL sie gleiche RTTI und der selbe Speichermanager arbeiten, kann man (fast) alles machen, was man auch sonst so (innerhalb der EXE) machen kann. |
AW: Action in DLL funktioniert nicht
Bpls erlauben auch Objekte im Interface.
Einfach statt Libary ein Package erstellen |
AW: Action in DLL funktioniert nicht
Wenn Du Dein Projekt und Deine DLL mit LaufzeitPackages kompilierst kannst Du Deine DLL's zuladen und fast alles funktioniert wie gewohnt, allerdings muß Du die BPL's dann mit distibuieren.
|
AW: Action in DLL funktioniert nicht
Dank Euch alle...
ist das ein sch... . Nachdem ich jetzt die Hürden genommen habe und eine BPL erstellt, Komponenten registriet, Packages Dynamisch laden kann kommt jetzt in meinem Testeprojekt der Hinweis: "Die Packages Jcl und wHelp enthalten beide die Unit JclStrHashMap". Ja welch wunder - Jcl wird verwendet und JclStrHashMap in irgendeiner Unterunit auch. Jcl steht bei mir unter den requires Packages und wird auch gebraucht. Ich muss doch gleiche Typen aus zwei Packages heraus aufrufen können - das ist doch häufig der Fall (Wenn man Code wiederverwendet.) Gruß Ralf |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz