![]() |
DLL, DDE oder OLE ???
Hi Leute,
also ich arbeite gerade an einem größeren Projekt. Nun bin ich an die Grenzen meines Verständinisses gelangt: Ich habe ein Programm dass verschiedenste Daten auswerten lassen soll. Dass soll ein anderes Programm oder DLL erledigen. Dann das Ergebnis der Auswertung dem ersten Programm wieder übermitteln. Das Auswert-Programm sollte vom Benutzer nich wahrgenommen werden. Nun weiß ich allerdings nicht für welche Variante ich mich entscheiden soll, da ich von allen 3 noch nicht gerade viel verstehe: Übertragen zwischen den Programmen muss: ein String und ein Integer, also nicht viel Da die Auswertung der Daten wahrscheinlich sehr lange dauern wird wollte ich irgendeine Fortschrittsanzeige einbinden. Bei DLL's könnte man ja ein Form einblenden, das würde zwar nicht so schön aussehen, würde aber den Zweck erfüllen. Nun weiß ich nich was bei DDE oder OLE Möglich ist, allerdings hoffe ich das es möglich wäre eine Art Feld in dem ersten Programm freizuhalten in dem man dann diese Fortschrittsanzeige direkt anzeigen kann. Das ganze muss deshalb so kompliziert sein, da die Fortschrittsanzeige und auch das Auswertprogramm völlig variable sein müssen; also auch von anderen Programmieren erweiterbar sein sollen, usw. Außerdem könnte ich mir vorstellen vielleicht über andere Programmiersprachen, z.B Java, oder unter Linux auf dieses Auswertprogramm zugreifen zu können, ohne es neu programmieren zu können. Wäre gut wenn jemmand Erfahrung mit DLL, DDE oder OLE hatt und mir erklären kann, welches am sinnvollsten ist bzw. ob das überhaupt möglich ist. Vielleicht kennt jemmand auch noch eine andere Methode? ( hab mal was von XML Kommunikation zwischen 2 Programmen gehört ) |
Re: DLL, DDE oder OLE ???
Hallo,
grundsätzlich: Eine DLL ist im Prinzip nichts anderes als ausgelagerter Code. Die läuft auch nicht von selber. OLE und DDE sind Verbindungsmechanismen, also etwas ganz anderes. Wenn du also einen Thread laufen hast, könntest du mit DDE deine Daten übertragen. Hab ich schon gemacht klappt einwandfrei. Nachteil: Es sind clevere Handshakemechanismen erforderlich damit nichts verloren geht. Dein Problem lösen kannst du mit keinem dieser Dinge. Du musst schon einen Prozess im Hintergrund laufen lassen und auf diesen mittels dde zugreifen. Solltest du nähere Informationen brauchen stehe ich gerne zur Verfügung! Rainer Unger |
Re: DLL, DDE oder OLE ???
Moin,
ich persönlich würde es mit einer DLL versuchen... Deiner Function/Procedure in der DLL übergibst du als zusätzlichen Parameter das Handle einer ProgressBar in deiner Hauptanwendung... Und dann kannst du z.B. per Messages (beschrieben z.B. auf Seite 76 ff. in Luckies Win32Api-Tutorials -> ![]() Der Vorteil dieser Lösung wäre, das es relativ einfach zu realisieren sein sollte und das es nicht nötig ist, dicke Forms usw. in die DLL mit reinzupacken. Mit freundlichem Gruß Wormid |
Re: DLL, DDE oder OLE ???
Moins,
also das was du suchst klingt ziemlich genau nach nem Automation-Server. Dort wird die Aufgabe über ein Interface an das COM-Objekt im Automation-Server weitergegeben. Die komplette Aufgabe wird dann unabhängig von deiner Clientanwendung durchgeführt. Ist alles erledigt benachrichtigt der Automation-Server die Clientanwendung, dass die Arbeit erledigt ist und das Ergebnis vorliegt. Nachteil: Es ist COM, sprich bissl Einarbeitung nötig! |
Re: DLL, DDE oder OLE ???
@Generalissimo
von COM hab ich noch nichts gehört, deswegen weiß ich nich was du meinst @Rainer_Unger Ein andere Prozess im Hintergrund würde mich nicht stören, mir gehts dann eigentlich bloß um folgende Sache: @Wormid Das klinkt schon sehr gut, aber eine Frage: könnte man über die DLL auch die Progressbar im Hauptprogramm initialisieren, nicht "nur" steuern (bzw. auch andere Komponenten)? |
Re: DLL, DDE oder OLE ???
Nix gehört? Hast du bestimmt schon! Lief mal ne Weile unter ActiveX.
Wenn du Delphi6 hast, dann geh mal unter Datei->Neu auf die Reiterseite ActiveX. Zudem stehen unter Delphi6 unter der Komponentenpalette "Server" die ganzen Automation-Server von Word, Excel, Outlook ... zur Verfügung. Die sind nichts anderes als Wrapper-Kompos von COM-Objekten die auf deinem System auch vorhanden sein müssten. Kannst ja mal in Delphi unter Projekt->Typbibliothek importieren gehen und dort in der Liste nach "Microsoft Word ... Object.." suchen. |
Re: DLL, DDE oder OLE ???
Hi,
also ActiveX kenn ich und hab auch Infos dazu, bloß kann man diese auch dynamisch einbinden? Also wenn ich das ActiveX Element irendwo runterlade und dem laufenden Programm sage das er das benutzen soll. Geht das? Soweit ich weiß muss man die ActiveX Elemente zur Entwicklung des Programms einfügen, oder? |
Re: DLL, DDE oder OLE ???
Halt dich nicht zu fest an Active X fest.
Active X ist wie ein eignes Programm. In sich abgeschlossen "nur" keine Exe (bitte jetzt mich nicht verprügeln. Ich weiss das das nicht korrekt beschrieben ist) Active X war dazu gedacht z.B. fürs Web in die Page ein Programm einzubinden. (Vorgänger war OCX. Active X war die abgespeckte Version von OCX da im Web die Übertragungszeit entscheidet.) Das ging natürlich auch mit normalen Programmen. Zu deiner Frage: Ja kann man dynamisch machen. Geh mal in D6 auf Komponente->Active X importieren Wenn du z.B. Acrobat hast, müsste dort irgensowas auftauchen oder halt ne andere Kompo. Die installierst du unter der Reiterseite Active X und in ein gewünschtes Package (am besten ein neues da dann die Deinstallation am leichtesten ist.) Dann mal auf ein Form ziehen. Danach kann mann ja sich mal in der Unit des ActiveX-Controlls umschauen. Dort wirst du dann ein Create Prozedure finden. Ein Buchtipp hätte ich noch. Wenn du dich mit dem Thema näher beschäftigen willst. COM/DCOM/COM+ mit Delphi ISBN: 3935042019 Das Buch ist von Andreas Kosch geschrieben. Unter ![]() auch direkt von ihm Antworten. Ist aber ein sehr komplexes Thema!!! Überleg ob sich der Aufwand mit dem Nutzen deckt und ob du das nötige Vorwissen mitbringst. Ich bin selber noch am lernen in dem Bereich. Ich jedenfalls fand und finde es ein sehr interessantes Thema (COM meine ich). Da es vorallem immer wichtiger wird. Stichwort NET Enterprise Services. |
Re: DLL, DDE oder OLE ???
Zitat:
Zitat:
Zitat:
|
Re: DLL, DDE oder OLE ???
Danke an die vielen Antworten, jetzt weiß ich erstmal wo ich stehe.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:14 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