Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das EXT_COMMAND Makro wird verwendet, um einen Erweiterungsbefehl zu definieren, der mithilfe des EXT_COMMAND_METHOD-Makros deklariert wurde.
Ein Erweiterungsbefehl ist wie folgt definiert:
Syntax
void EXT_COMMAND(
_Name,
_Desc,
_Args
);
Parameter
_Name
Der Name des Erweiterungsbefehls. Dies muss mit dem parameter _Name identisch sein, der zum Deklarieren des Erweiterungsbefehls mithilfe von EXT_COMMAND_METHODverwendet wird.
Da EXT_COMMAND ein Makro ist, muss _Name der bloße Name des Erweiterungsbefehls sein und darf nicht in Anführungszeichen eingeschlossen werden oder eine Variable sein.
_Desc
Eine Zeichenfolge, die den Erweiterungsbefehl beschreibt.
_Args
Eine Zeichenfolge, die die Argumente beschreibt, die vom Erweiterungsbefehl erwartet werden. Informationen zum Formatieren der _Args Zeichenfolge finden Sie unter Parsing Extension Arguments.
Rückgabewert
Nichts
Bemerkungen
Der Textkörper des Erweiterungsbefehls verwendet keine Argumente. Da der Erweiterungsbefehl jedoch als Methode der EXT_CLASS Klasse deklariert wird, hat er Zugriff auf alle Member der ExtExtension Basisklasse, von denen einige für die Ausführung des Erweiterungsbefehls initialisiert werden.
Das Makro EXT_COMMAND_METHOD sollte zum Deklarieren des Erweiterungsbefehls verwendet werden. Wie bei allen C++-Deklarationen sollte die EXT_COMMAND_METHOD-Deklaration in den Quelldateien vor der EXT_COMMAND Definition angezeigt werden.
Wenn das Debuggermodul eine Erweiterungsbefehlsmethode aufruft, wird der Aufruf in einem try /except Block umbrochen. Dadurch wird das Modul vor einigen Arten von Fehlern im Erweiterungscode geschützt. Da die Erweiterungsaufrufe jedoch im selben Thread wie das Modul ausgeführt werden, können sie trotzdem zum Absturz führen.
Dieses Makro erstellt auch eine Funktion namens _Name (die die vom Makro definierte Methode aufruft). Damit das Modul die Erweiterung aufrufen kann, muss diese Funktion aus der Erweiterungsbibliotheks-DLL exportiert werden.
Die EXT_CLASS Konstante gibt den Namen der C++-Klasse an, die die Erweiterungsbibliothek EngExtCpp darstellt.
EXT_CLASS
#ifndef EXT_CLASS
#define EXT_CLASS Extension
#endif
Der Standardwert von EXT_CLASS ist Extension. Sie können diesen Wert ändern, indem Sie EXT_CLASS definieren, bevor Sie die Headerdatei Engextcpp.hpp einschließen.
Jeder Erweiterungsbefehl in der Bibliothek wird mithilfe des Makros EXT_COMMAND_METHODals Mitglied der Klasse EXT_CLASS deklariert. Beispielsweise könnte eine Bibliothek mit zwei Erweiterungsbefehlen, extcmd und einer anderenextcmd-, die Klasse EXT_CLASS wie folgt definieren:
class EXT_CLASS : public ExtExtension
{
public:
EXT_COMMAND_METHOD(extcmd);
EXT_COMMAND_METHOD(anotherextcmd);
}
Erweiterungsbefehle, die mithilfe von EXT_COMMAND_METHOD deklariert wurden, sollten mithilfe von EXT_COMMAND definiert und aus der Bibliothek exportiert werden.
Das EXT_DECLARE_GLOBALS-Makro erstellt eine einzelne Instanz der EXT_CLASS Klasse.
Das EXT_DECLARE_GLOBALS Makro richtet einige globale Variablen für die Verwendung durch das Erweiterungsframework EngExtCpp ein. Dazu gehört das Erstellen einer einzelnen Instanz der EXT_CLASS-Klasse, die die Erweiterungsbibliothek EngExtCpp darstellt.
Eine der Quelldateien, die in die EngExtCpp-Erweiterungsbibliothek kompiliert werden sollen, sollte den folgenden Befehl enthalten:
EXT_DECLARE_GLOBALS()
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform- | Desktop |
| Header- | engextcpp.hpp (include Engextcpp.hpp) |