AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

automation DLL - Verständnisfrage

Ein Thema von moelski · begonnen am 27. Okt 2009 · letzter Beitrag vom 28. Okt 2009
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

automation DLL - Verständnisfrage

  Alt 27. Okt 2009, 23:35
Moin !

Es gibt ja die Möglichkeit einer bestehenden Applikation ein automation object hinzuzufügen.
Soweit so klar ... Der Automation Server ist in dem Fall in der EXE - out-of-process automation server.

Nun besteht aber auch die Möglichkeit eine DLL (automation in-process servers) zu erzeugen.
Da verstehe ich aber gerade die Zusammenhänge noch nicht ganz.

Ich habe eine Anwendung. Wird dann die ganze Anwendung (inkl. Formular) in die DLL transferiert?
Oder ist es eher so das zu meiner bestehenden EXE eine automation in-process DLL erstellt wird. Und die DLL nutzt dann wiederum (z.B.) das Formular der EXE?
Es gibt zu dem ganzen Thema ja hier eine schön Seite: http://www.gekko-software.nl/Delphi/

Aber das mit dem automation in-process server will sich mir gerade noch nicht ganz erschließen.
Könnte da jemand mal ein paar Worte zu verlieren?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: automation DLL - Verständnisfrage

  Alt 28. Okt 2009, 07:39
Zitat von moelski:
Aber das mit dem automation in-process server will sich mir gerade noch nicht ganz erschließen.
Könnte da jemand mal ein paar Worte zu verlieren?
Ist gar nicht so schwer.
Du bewegst deinen Code aus der Echse in die Library.
Deine Echse ruft dann also die Library genauso auf, wie es eine andere Echse tun würde, die damit etwas anstellen will.

Höchstwahrscheinlich wandert praktisch alles aus deiner aktuellen Echse in die Automations-Library, und die Echse wird wohl nur eine Instanz dein XyzApplication erzeugen, es modal sichtbar machen und dadurch warten bis XyzApplication beendet wird.
Oder wie auch immer du es lösen willst. Vllt willst du, dass deine Echse besser damit interagieren als es andere Programme, etc..
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: automation DLL - Verständnisfrage

  Alt 28. Okt 2009, 10:11
Moin !

Zitat:
Du bewegst deinen Code aus der Echse in die Library.
Deine Echse ruft dann also die Library genauso auf, wie es eine andere Echse tun würde, die damit etwas anstellen will.
Nuja, so einfach ist die Welt nicht

Ich beschreibe mal unser Szenario ...
Wir haben da eine Anwendung die - vereinfacht gesagt - Kurven plottet. Sinn der Übung ist nun, das man von extern die Anwendung mit Daten füttern kann um eben Kurven zu zeichnen.
Also sowas in dem Stil hier (just a sample):
Delphi-Quellcode:
LV.CreateChart
LV.CreateLine("Heizung Wärmespeicher Temp")
LV.AddChart(1, "33.5;33.7;33.5;33.4;")
Wenn ich nun all meinen Code in die DLL frachte, dann würde sich ja unsere Anwendung "auflösung" - das geht aber nicht. Die brauchen wir ja nachwievor.

Ich hatte eher gehofft, das ich das COM Objekt in eine in-process automation DLL auslagere. Dann ist mir aber noch nicht klar wie das COM Objekt mit der Anwendung spricht.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: automation DLL - Verständnisfrage

  Alt 28. Okt 2009, 10:29
Wenn du die Exe immer noch haben willst dann las es so wie es ist und nimm den Automation Server.
Die DLL-Lösung ist wenn du das als Komponenten allgemein zur verfügung stellen willst ohne eigenständige Exe.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#5

Re: automation DLL - Verständnisfrage

  Alt 28. Okt 2009, 12:51
Moin Bernhard,

das habe ich mir ja schon fast gedacht ...

Aber eine Frage hätte ich noch. Es gibt eine Software DPlot : http://www.dplot.com/index.htm
Dort gibt es eine DLL welche in eigene Anwendungen eingebunden werden kann. Die DLL wiederum steuert dann DPlot.
Siehe dazu auch hier: http://www.dplot.com/lib/index.htm

Wie haben die das wohl gelöst? Hat da dann die EXE ein COM Objekt und die DLL greift auf das COM Objekt zu?
Wobei dann könnten sie auch direkt das COM Objekt beschreiben / freigeben.

Any ideas?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: automation DLL - Verständnisfrage

  Alt 28. Okt 2009, 13:36
Bei VS (ATL?) besteht die möglichkeit Marshall-DLL's erstellen zu lassen um komplexere Datenstrukturen über COM zu übertragen. Dieser Weg steht den Delphi-Entwicklern nicht offen. Delphi-Anwendungen sind auf die Möglichkeiten des standard COM-Marsharlers beschränkt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#7

Re: automation DLL - Verständnisfrage

  Alt 28. Okt 2009, 16:11
Ok Danke für die Erklärung.

Was mich nur wundert ist die Tatsache das in der DLL auch noch Funktionen stecken, die auf die Anwendung zugreifen.
Können die dann ebenfalls dort untergebracht werden?

Und noch ne Frage zum Verständnis. Im Grunde ist aber immer noch so, dass ein COM Objekt existiert, welches von der DLL genutzt wird. Und über das COM Objekt erfolgen auch die Zugriffe auf die Anwendung, oder!?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz