Handling und Erstellung von DLL EXE COM DCOM

  • Slides: 20
Download presentation
Handling und Erstellung von: DLL, EXE, COM, DCOM

Handling und Erstellung von: DLL, EXE, COM, DCOM

Der Weg zu COM /DCOM n PLB, FLL – n Zu Fox. Pro DOS/Windows

Der Weg zu COM /DCOM n PLB, FLL – n Zu Fox. Pro DOS/Windows Zeiten konnten wir als PLB und FLL als fremde Bibliotheken mit einbinden. DLL – – Windows brachte uns die DLL (Dynamic Link Libraries) Seit VFP 3. 0 können wir diese in VFP verwenden. Auch diese ermöglichen uns den Zugriff auf VFP fremde Funktionen. © 1999 TMN-Systemberatung Gmb. H

Der Weg zu COM /DCOM n DDE (Dynamic Data Exchange) – n Mit DDE

Der Weg zu COM /DCOM n DDE (Dynamic Data Exchange) – n Mit DDE erhielten wir die Möglichkeit, über einen Kanal, Befehle an fremde Programme zu senden und diese damit fernzusteuern. OLE 1. 0 (Object linking and embedding) – OLE 1. 0 gab uns dann die Möglichkeit direkt aus der Fremdanwendung (z. B. VFP) die Funktionalität der OLE Anwendung zu nutzen (z. B. Excel) © 1999 TMN-Systemberatung Gmb. H

Der Weg zu COM /DCOM n OLE 2. 0 – – – OLE 2.

Der Weg zu COM /DCOM n OLE 2. 0 – – – OLE 2. 0 bracht neben vielen internen Verbesserungen für uns offensichtlich den Vorteil die Oberfläche der Fremdanwendung (z. B. Excel) in unseren VFP-Forms darzustellen. Intern wurde mit OLE 2. 0 die Möglichkeit geschaffen nur noch der Kernel des Fremdprogramms zu starten. Aber auch hiermit war es nicht möglich das andere Programm fernzusteuern, sondern der Benutzer mußte dieses explizit bedienen. © 1999 TMN-Systemberatung Gmb. H

Der Weg zu COM /DCOM n OLE Automation – – Mit OLE Automation können

Der Weg zu COM /DCOM n OLE Automation – – Mit OLE Automation können wir direkt auf die Funktionalität des Fremdprogramms zugreifen und dieses auch fernsteuern. (z. B. Tabellen im Excel erzeugen, speiern und ausdrucken !) Auch VFP kann inzwischen ferngesteuert werden und somit als OLE-Automation Server agieren. © 1999 TMN-Systemberatung Gmb. H

Der Weg zu COM /DCOM n COM (Common Object Modell) – – Während OLE

Der Weg zu COM /DCOM n COM (Common Object Modell) – – Während OLE Automation voraussetzt, daß der Benutzer die Funktionen und Programmierung des Fremdprogramms kennt, bietet uns COM die Möglichkeit fertige Funktionen und Abläufe für andere Programme zur Verfügung zu stellen. Bei VFP kann dies z. B. eine Methode sein, welche uns in einer Form eine Auswahl zur Verfügung stellt und den ausgewählten Datensatz ins Clipboard stellt. © 1999 TMN-Systemberatung Gmb. H

Der Weg zu COM /DCOM n n COM als OLE-DLL oder OLE-EXE DLL –

Der Weg zu COM /DCOM n n COM als OLE-DLL oder OLE-EXE DLL – – n „In Process“ Aufruf Task hängt sich an aufrufendes Programm keine visuellen Elemente möglich mit dem MTS lauffähig EXE – – – „Out of Process“ Aufruf eigene Task Visuelle Elemente sind möglich © 1999 TMN-Systemberatung Gmb. H

Der Weg zu COM /DCOM n DCOM (Distributed COM) – – – DCOM Server

Der Weg zu COM /DCOM n DCOM (Distributed COM) – – – DCOM Server werden genauso erstellt wie COM Komponenten. Während COM Server allerdings auf der lokalen Maschine liegen müssen um diese zu verwenden, können DCOM Server auf irgendeiner Maschine im Netz liegen, und auch dort ablaufen. Diese müssen lediglich auf der lokalen Maschine angemeldet werden. Das Recht auf die Ausführung von DCOM Servern kann über die DCOM Registierung eingeschränkt werden. Dies ist mit COM nicht möglich ! © 1999 TMN-Systemberatung Gmb. H

Der Weg zu COM /DCOM n Active. X – – – Der Vorläufer von

Der Weg zu COM /DCOM n Active. X – – – Der Vorläufer von Active. X waren die OCXe Diese konnten ins eigene Programm integriert werden. (Bsp. Tree View Control) Die eigene Programmiersprache kann damit um beliebig viele fremde Komponenten erweitert werden. OCXe wurden aus Maketing Gründen in Active. X umbenannt. Active. X Controls können in C++ oder in Visual Basic ab 5. 0 erstellt werden. © 1999 TMN-Systemberatung Gmb. H

Der Weg zu COM /DCOM n Active. X – – – Inzwischen gibt es

Der Weg zu COM /DCOM n Active. X – – – Inzwischen gibt es auf dem Markt Active. X Controls zu fast allen Bereichen (Karten darstellen, Projekt Management / Diagramme, Kalender Funktionalität. . . ) Auch Bestandteile des Windows Betriebssystems sind als Active. X verfügbar (Internet Explorer. . ) Der Einsatz von Active. X Controls funktioniert innerhalb von VFP recht unproblematisch, sofern man dessen Methoden und Eigenschaften kennt. © 1999 TMN-Systemberatung Gmb. H

Der Weg zu COM /DCOM n MTS (Microsoft Transaction Server) – – – Der

Der Weg zu COM /DCOM n MTS (Microsoft Transaction Server) – – – Der Microsoft Transaction Server bietet uns die Möglichkeit COM Server zu verwalten und diese Benutzern netzweit zur Verfügung zu stellen. MTS optimiert den Speicherverbrauch wenn viele User auf die gleiche Komponente zugreifen. Außerdem hat er die Möglichkeit alle Aktionen des COM Servers innerhalb einer Transaction ablaufen zu lassen. © 1999 TMN-Systemberatung Gmb. H

Der Weg zu COM /DCOM n MTS – VFP 6. 0 arbeitet mit dem

Der Weg zu COM /DCOM n MTS – VFP 6. 0 arbeitet mit dem MTS wegen der fehlenden Multithreading Fähigkeit noch nicht sauber zusammen. -> Benutzer müssen warten wenn ein User die COM Komponente verwendet. Dies sollte aber mit der Version 6. 1 gefixt sein. © 1999 TMN-Systemberatung Gmb. H

DLL aus VFP ansprechen n DECLARE [c. Function. Type] Function. Name IN Library. Name

DLL aus VFP ansprechen n DECLARE [c. Function. Type] Function. Name IN Library. Name [AS Alias] [c. Param. Type 1 [@] Param. Name 1, c. Param. Type 2 [@] Param. Name 2, . . . ] n Aus VFP heraus können theoretisch alle Arten von DLL´s angesprochen werden. Der Befehl DECLARE DLL wird verwendet um die gewünschte Funktion innerhalb der DLL anzumelden. © 1999 TMN-Systemberatung Gmb. H

DLL aus VFP ansprechen n n Einschränkung: DLL´s welche STRUCTUREN als Parameter erwarten sind

DLL aus VFP ansprechen n n Einschränkung: DLL´s welche STRUCTUREN als Parameter erwarten sind erst einmal nicht ansprechbar, da VFP keinen korrespondierenden Datentyp hat. In Visual Fox. Pro können Sie nur solche DLLs verwenden, die für eine 32 -Bit-Umgebung geschrieben wurden. Sollten Sie 16 -Bit DLLs benötigen so können Sie auf diese über Funktionen in der Fox. Tools. fll zugreifen. © 1999 TMN-Systemberatung Gmb. H

DLLs aus dem Speicher löschen n CLEAR DLLS Löscht alle mit DECLARE - DLL

DLLs aus dem Speicher löschen n CLEAR DLLS Löscht alle mit DECLARE - DLL registrierten Funktionen aus dem Arbeitsspeicher. CLEAR ALL hat den gleichen Effekt Es ist nicht möglich einzelne DLLs explizit zu löschen. © 1999 TMN-Systemberatung Gmb. H

DECLARE DLL - Beispiel n Im folgenden Programm wird die Funktion Get. Active. Window(

DECLARE DLL - Beispiel n Im folgenden Programm wird die Funktion Get. Active. Window( ) registriert, die zu der Windows. System-DLL USER 32. DLL gehört und hier die Kennung (das Handle) des Visual Fox. Pro-Hauptfensters zurückgibt. Die Funktion Get. Active. Window( ) hat keine Parameter und gibt eine ganze Zahl zurück: n n DECLARE INTEGER Get. Active. Window IN win 32 api MESSAGEBOX(STR( Get. Active. Window())) n 2. Praxis Beispiel: Shell. Execute() © 1999 TMN-Systemberatung Gmb. H

COM Server erstellen n n n Klasse erstellen Diese als Ole. Public definieren Methode

COM Server erstellen n n n Klasse erstellen Diese als Ole. Public definieren Methode erstellen Klasse als EXE oder DLL kompilieren Anwendung über lo. Ref = Create. Object(„Projekt. Klasse“) aus Fremdprogramm aufrufen. Die Methoden der Klasse können über lo. Ref. Methoden. Name() aufgerufen werden. © 1999 TMN-Systemberatung Gmb. H

COM Server erstellen n Über SUBSTR(LEFT(SYS(16), RAT("", SYS(16))), AT(": ", SYS(16))-1) n n erhalten

COM Server erstellen n Über SUBSTR(LEFT(SYS(16), RAT("", SYS(16))), AT(": ", SYS(16))-1) n n erhalten Sie das Verzeichnis, in welchem Ihre DLL liegt. Mit Hilfe dieses Befehls müssen Sie das VFP Default Verzeichnis setzen. Standardmäßig zeigt dieses auf die VFP Runtime DLL. Wenn Sie Forms in Ihrer DLL anzeigen möchten, so müssen diese als Top Level Form (Eigenschaft Show. Window=2) eigestellt sein ! © 1999 TMN-Systemberatung Gmb. H

Zusammenfassung n n n n n PLB, FLL DLL OLE Automation COM /DCOM MTS

Zusammenfassung n n n n n PLB, FLL DLL OLE Automation COM /DCOM MTS Active. X DLLs in VFP ansprechen COM Server in VFP erstellen © 1999 TMN-Systemberatung Gmb. H

Anregungen und Fragen TMN-Systemberatung Gmb. H Allee 62 74072 Heilbronn http: //www. tmn-systemberatung. de

Anregungen und Fragen TMN-Systemberatung Gmb. H Allee 62 74072 Heilbronn http: //www. tmn-systemberatung. de info@tmn-systemberatung. de © 1999 TMN-Systemberatung Gmb. H