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

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

  • Upload
    rainer

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

Handling und Erstellung von: DLL, EXE, COM, DCOM. Der Weg zu COM /DCOM. PLB, FLL Zu FoxPro 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. - PowerPoint PPT Presentation

Citation preview

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

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

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

© 1999 TMN-Systemberatung GmbH

Der Weg zu COM /DCOM

PLB, FLL– Zu FoxPro 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.

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

© 1999 TMN-Systemberatung GmbH

Der Weg zu COM /DCOM

DDE (Dynamic Data Exchange)– 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)

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

© 1999 TMN-Systemberatung GmbH

Der Weg zu COM /DCOM

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 OLE2.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.

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

© 1999 TMN-Systemberatung GmbH

Der Weg zu COM /DCOM

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.

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

© 1999 TMN-Systemberatung GmbH

Der Weg zu COM /DCOM

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.

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

© 1999 TMN-Systemberatung GmbH

Der Weg zu COM /DCOM

COM als OLE-DLL oder OLE-EXE DLL

– „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

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

© 1999 TMN-Systemberatung GmbH

Der Weg zu COM /DCOM

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 !

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

© 1999 TMN-Systemberatung GmbH

Der Weg zu COM /DCOM

ActiveX – Der Vorläufer von ActiveX 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 ActiveX

umbenannt.– ActiveX Controls können in C++ oder in Visual Basic

ab 5.0 erstellt werden.

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

© 1999 TMN-Systemberatung GmbH

Der Weg zu COM /DCOM

ActiveX– Inzwischen gibt es auf dem Markt ActiveX

Controls zu fast allen Bereichen (Karten darstellen, Projekt Management / Diagramme, Kalender Funktionalität......)

– Auch Bestandteile des Windows Betriebssystems sind als ActiveX verfügbar (Internet Explorer....)

– Der Einsatz von ActiveX Controls funktioniert innerhalb von VFP recht unproblematisch, sofern man dessen Methoden und Eigenschaften kennt.

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

© 1999 TMN-Systemberatung GmbH

Der Weg zu COM /DCOM

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.

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

© 1999 TMN-Systemberatung GmbH

Der Weg zu COM /DCOM

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.

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

© 1999 TMN-Systemberatung GmbH

DLL aus VFP ansprechen

DECLARE [cFunctionType] FunctionName IN LibraryName [AS Alias][cParamType1 [@] ParamName1,cParamType2 [@] ParamName2, ...]

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.

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

© 1999 TMN-Systemberatung GmbH

DLL aus VFP ansprechen

Einschränkung:DLL´s welche STRUCTUREN als Parameter erwarten sind erst einmal nicht ansprechbar, da VFP keinen korrespondierenden Datentyp hat.

In Visual FoxPro 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 FoxTools.fll zugreifen.

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

© 1999 TMN-Systemberatung GmbH

DLLs aus dem Speicher löschen CLEAR DLLS

Löscht alle mit DECLARE - DLL registrierten Funktionen aus dem Arbeitsspeicher.

CLEAR ALLhat den gleichen Effekt

Es ist nicht möglich einzelne DLLs explizit zu löschen.

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

© 1999 TMN-Systemberatung GmbH

DECLARE DLL - Beispiel

Im folgenden Programm wird die Funktion GetActiveWindow( ) registriert, die zu der Windows-System-DLL USER32.DLL gehört und hier die Kennung (das Handle) des Visual FoxPro-Hauptfensters zurückgibt. Die Funktion GetActiveWindow( ) hat keine Parameter und gibt eine ganze Zahl zurück:

DECLARE INTEGER GetActiveWindow IN win32api

MESSAGEBOX(STR( GetActiveWindow()))

2. Praxis Beispiel: ShellExecute()

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

© 1999 TMN-Systemberatung GmbH

COM Server erstellen

Klasse erstellen Diese als OlePublic definieren Methode erstellen Klasse als EXE oder DLL kompilieren Anwendung über

loRef = CreateObject(„Projekt.Klasse“) aus Fremdprogramm aufrufen.

Die Methoden der Klasse können überloRef.MethodenName() aufgerufen werden.

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

© 1999 TMN-Systemberatung GmbH

COM Server erstellen

Über SUBSTR(LEFT(SYS(16),RAT("\",SYS(16))),AT(":",SYS(16))-1)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 ShowWindow=2) eigestellt sein !

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

© 1999 TMN-Systemberatung GmbH

Zusammenfassung

PLB, FLL DLL OLE OLE Automation COM /DCOM MTS ActiveX DLLs in VFP ansprechen COM Server in VFP erstellen

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

© 1999 TMN-Systemberatung GmbH

Anregungen und Fragen

TMN-Systemberatung GmbHAllee 6274072 Heilbronn

http://[email protected]