Freigeben über


Programmieranmerkungen zu Automatisierungsservern

Unter den folgenden Themen finden Sie zusätzliche Informationen zum Programmieren von Automatisierungsservern:

Das Anwendungsobjekt

Das Application-Objekt wird nicht in der Typbibliothek eines Automatisierungsservers offen gelegt. Aus diesem Grund können Sie nicht auf die Methoden DoCmd und Eval des Application-Objekts zugreifen. Sie können das Application-Objekt offen legen, indem Sie eine benutzerdefinierte Eigenschaft erstellen und das Application-Objekt als Wert dieser Eigenschaft festlegen. Sie können jedoch auch eine Methode bereitstellen, die auf das Application-Objekt zugreift.

Eigenschaften des Application-Objekts, die gelesen und festgelegt werden können, z. B. AutoYield, sind globale Eigenschaften auf Projektebene. Aus diesem Grund müssen Sie sicherstellen, dass Multithreadserver nicht annehmen, dass die Werte dieser Einstellungen threadübergreifend geschützt sind.

Beispiele für Automatisierungsserver

Diese Version von Visual FoxPro enthält zwei Beispiel-ISAPI-Automatisierungsserver, FoxWeb und FoxIS. Diese Beispiele verwalten die Rückgabe ausgewählter Visual FoxPro-Datensätze an einen Internetbrowser in Form von HTML. Weitere Informationen zu diesen Beispielen finden Sie unter FoxISAPI: An OLE Server Sample.

Anmerkung   Der in Visual FoxPro enthaltene Server FoxISAPI enthält Verbesserungen, die speziell für die Verwendung mit neuen Multithread-DLL-Servern konzipiert wurden. DLL-Server, die über FoxISAPI ausgeführt werden, sollte den integrierten Pool-Manager nicht verwenden.

Konfigurationsdateien

In Visual FoxPro werden während der Laufzeitinitialisierung nur Versionen von CONFIG.FPW verwendet, die entweder innerhalb von EXE- oder innerhalb DLL-Servern gebunden sind. In der Konfigurationsdatei werden wichtige Einstellungen gespeichert, die beim Starten von Visual FoxPro (sowohl Produkt- als auch Laufzeitumgebung) festgelegt werden. Vor Visual FoxPro 6.0 konnte die Datei CONFIG.FPW eine separate Datei oder innerhalb der Anwendung (APP, EXE oder DLL) gebunden sein. Wenn CONFIG.FPW in einer Anwendung gebunden ist, wird diese Datei verwendet; andernfalls sucht Visual FoxPro die gängigen Pfade nach einer separaten Version von CONFIG.FPW.

In normalen, verteilten APP- und EXE-Anwendungen steht Ihnen weiterhin die vollständige Funktionalität zur Verfügung.

Verwaltung von Codepages

Codepages werden in allen Servern unterstützt und gelten immer für ein bestimmtes Projekt (DLL). Die Standardcodepage kann in der Datei CONFIG.FPW festgelegt werden und wird nur während der Initialisierung der Laufzeitdateien festgelegt. Die Codepage ist global für alle Projekte. Alle Objekte, die eine bestimmte Instanz der Laufzeitdatei verwenden, verwenden dieselbe Codepage. Da die Möglichkeit besteht, dass mehrere DLL-Server die Standardcodepage für eine Laufzeitdatei ändern (d. h., jeder Server verfügt über eine eigene Version von CONFIG.FPW mit einer jeweils anderen Codepageeinstellung), verhindert Visual FoxPro die Änderung dieser Einstellung, sobald die Laufzeitdatei gestartet wurde. Nachdem eine Codepage festgelegt wurde, gilt sie so lange, bis die Laufzeitdatei freigegeben wird.

Benutzer, die Server benötigen, von denen jeder eine eigene Codepage aufweist, können diese Server zusammen mit einer Kopie der Laufzeitbibliothek vfp7t.dll in einem eigenen Ordner speichern. Ein Server verwendet standardmäßig immer eine Laufzeitbibliothek, die in seinem Ordner gespeichert ist.

Besondere Merkmale bestimmter Sprachelemente

Wenn Sie Automatisierungsserver verwenden, sollten Sie sich vergegenwärtigen, dass das Verhalten bestimmter Befehle geringfügig von dem normalen Produktbetrieb abweicht.

SET DEFAULT

Wenn Sie das Standardverzeichnis mit dem SET DEFAULT-Befehl oder CD festlegen, wirkt sich dies auf den ganzen Prozess aus. Wenn Sie also mehrere Threads instanziiert haben und CD MYDIR in einem Thread verwenden, wirkt sich dies auf alle Threads und den Prozess aus, in dem die Objekte geladen wurden. Das Arbeitsverzeichnis wird vom Betriebssystem gesteuert, so dass sich die Änderung dieser Einstellung auf alle Objekte auswirkt.

SET PROCEDURE

Da dieser Befehl im lokalen Threadspeicher gespeichert wird, gilt er immer nur für den jeweiligen Thread. Wenn Sie einen EXE- oder DLL-COM-Server instanziieren, führt Visual FoxPro jedoch standardmäßig implizit eine SET PROCEDURE-Anweisung für den ganzen Server aus. Beispiel:

? SET("PROCEDURE")
C:\VFP\MYSERVER.DLL

Hierdurch können Sie auf jede Prozedur zuzugreifen, die im Server gespeichert ist. Falls ein im Thread vorhandenes Objekt SET PROCEDURE TO aufruft, wird der Prozedurpfad auf Nothing festgelegt. Sobald jedoch ein neues Objekt in demselben Thread erstellt wird, wird automatisch wieder der ganze Server als Prozedurpfad festgelegt.

SET CLASS

Die Funktionsweise dieses Befehls ist mit der Funktionsweise von SET PROCEDURE identisch. Der Wert wird im lokalen Threadspeicher gespeichert; er wird jedoch mit dem vollständigen Satz der Klassenbibliotheken in dem EXE- oder DLL-Server initialisiert. Beispiel:

? SET("CLASS")
C:\VFP\myClass.VCX ALIA

Siehe auch

In Laufzeiten unterstützte Sprachen | Auswahl einer Laufzeitbibliothek | Beispiele für FoxISAPI-Automatisierungsserver | Interoperabilität und das Internet | Anwendungsobjekt | DoCmd | Eval