Modul (C++)
Definiert den Library-Block in der IDL-Datei.
[ module (
type=dll,
name=string,
version=1.0,
uuid=uuid,
lcid=integer,
control=boolean,
helpstring=string,
helpstringdll=string,
helpfile=string,
helpcontext=integer,
helpstringcontext=integer,
hidden=boolean,
restricted=boolean,
custom=string,
resource_name=string,
) ];
Parameter
Typ (optional)
Einer der folgenden Werte ist möglich:DLL fügt Funktionen und Klassen hinzufügen, mit denen das resultierende DLL zur Funktion als prozessinterne COM-Server ermöglichen.Dies ist der Standardwert.
exe fügt Funktionen und Klassen hinzufügen, mit denen die resultierende ausführbare Datei aus einer Funktion als Prozess com-server out ermöglichen.
Dienst fügt Funktionen und Klassen hinzufügen, mit denen die resultierende ausführbare Datei für die Funktion als NT-Dienst ermöglichen.
nicht angegeben deaktiviert die Einfügung von ATL-Code, bezogen auf den Modulattribut: ATL-Modul Klasse, der die Einfügung des globalen Instanz _AtlModule und des Einstiegspunktes funktioniert.Deaktiviert die Einfügung von ATL-Code nicht aufgrund anderer Attribute im Projekt.
Name (optional)
Der Name des Library-Blocks.Version (optional)
Die Versionsnummer, die Sie zum Library-Block zuweisen möchten.Der Standardwert ist 1.0.uuid
Die eindeutige ID für die Bibliothek.Wenn Sie diesen Parameter weglassen, wird automatisch eine ID für die Bibliothek generiert.Möglicherweise müssen Sie das uuid des Library-Blocks abrufen, den Sie ausführen können, indem Sie die Einstellung für Bezeichner (__uuidoflibraryname**)**verwenden.lcid
Der Parameter Hilfedatei.Weitere Informationen finden Sie unter lcid .Steuerelement (optional)
Gibt an, dass alle Namen in der Bibliothek Steuerelemente handelt.helpstring
Gibt die Typbibliothek an.helpstringdll (optional)
Legt den Namen der .dll-Datei ab, mit dem eine Dokumenten Zeichenfolgen Suche auszuführen.Weitere Informationen finden Sie unter helpstringdll .helpfile (optional)
Der Name der Hilfedatei für die Typbibliothek.helpcontext (optional)
Die Hilfe ID für diese Typbibliothek.helpstringcontext (optional)
Weitere Informationen finden Sie unter helpstringcontext .hidden (optional)
Verhindert, dass die gesamte Bibliothek angezeigt.Diese Verwendung ist für die Verwendung mit Steuerelementen bestimmt.Hosts müssen eine Bibliothek des neuen Typs erstellen, die das Steuerelement mit erweiterten Eigenschaften umschließt.Weitere Informationen finden Sie im Hidden MIDL-Attribut.restricted (optional)
Mitglieder der Bibliothek können nicht willkürlich aufgerufen werden.Weitere Informationen finden Sie im Einschränkung MIDL-Attribut.Benutzerdefiniert (optional)
Eine oder mehrere Attribute. Hierbei handelt es sich um Benutzerdefiniert-Attribut sehr ähnlich.Der erste Parameter in custom ist die GUID des Attributs.Beispiele:[module(custom={guid,1}, custom={guid1,2})]
resource_name
Die Zeichenfolgenressource ID der RGS-Datei verwendet, um die APP-ID der DLL, der ausführbaren Datei oder des Diensts zu registrieren.Wenn das Modul Typ hilfreich ist, wird dieses Argument verwendet auch zum Abrufen der ID der Zeichenfolge, die den Dienstnamen enthält.
Hinweis |
---|
sollten die RGS-Datei und die Zeichenfolge mit dem Dienstnamen enthält denselben numerischen Wert enthalten. |
Hinweise
Sofern Sie den restricted-Parameter in emitidlangeben, ist module in jedem Programm erforderlich, um das C++-Attribute verwendet.
Ein Library-Block wird erstellt, wenn Modulattribut zusätzlich zum Quellcode Dispatchschnittstelle, dual, auch Objektoder ein Attribut verwendet, das Co-Klasseimpliziert.
Ein Library-Block wird in einer IDL-Datei zulässig.Mehrere Modul Dateisystemeinträgen im Quellcode werden zusammengeführt, wenn die letzten Parameterwerte implementiert sind.
Wenn dieses Attribut innerhalb eines Projekts verwendet wird, das ATL verwendet, ändert sich das Verhalten des Attributs.Neben den oben beschriebenen Verhalten fügt das Attribut zudem ein globales Objekt ( _AtlModule) des richtigen Typs und zusätzliche Unterstützung von Code ein.Wenn das Attribut eigenständig ist, fügt es einer Klasse, die vom richtigen Typ des Moduls abgeleitet ist.Wenn das Attribut auf eine Klasse angewendet wird, wird eine Basisklasse richtigen Typ Modul hinzu.Der richtige Typ wird durch den Wert des type-Parameters bestimmt:
type = DLL
CAtlDllModuleT ist als die Basisklasse und die Einstiegspunkte des Standardwerts DLL verwendet, die für einen COM-Server erforderlich sind.Diese Einstiegspunkte sind DllMain, DllRegisterServer, DllUnRegisterServer, DllCanUnloadNowund DllGetClassObject.
type = exe
CAtlExeModuleT ist als die Basisklasse und der ausführbaren StandardEinstiegspunkt WinMainverwendet.
type = Dienst
CAtlServiceModuleT ist als die Basisklasse und der ausführbaren StandardEinstiegspunkt WinMainverwendet.
type = nicht angegeben
Deaktiviert das Einfügen von ATL-Code, bezogen auf den Modulattribut.
Beispiel
Der folgende Code zeigt, wie ein Library-Block in der generierten IDL-Datei erstellt.
// cpp_attr_ref_module1.cpp
// compile with: /LD
[module(name="MyLibrary", version="1.2", helpfile="MyHelpFile")];
Der folgende Code zeigt, dass Sie bereitstellen können, Implementierung einer Funktion besitzen, die im Code angezeigt würde, der aufgrund der Verwendung von moduleeingefügt wurde.Weitere Informationen finden Sie unter /Fx Weitere Informationen zum Anzeigen von eingefügtem Code.Für eine der Funktionen überschreiben, die vom Modulattribut eingefügt werden, können Sie eine Klasse, die die Implementierung der Funktion enthält, und lassen Sie das Modulattribut für diese Klasse gelten.
// cpp_attr_ref_module2.cpp
// compile with: /LD /link /OPT:NOREF
#include <atlbase.h>
#include <atlcom.h>
#include <atlwin.h>
#include <atltypes.h>
#include <atlctl.h>
#include <atlhost.h>
#include <atlplus.h>
// no semicolon after attribute block
[module(dll, name="MyLibrary", version="1.2", helpfile="MyHelpFile")]
// module attribute now applies to this class
class CMyClass {
public:
BOOL WINAPI DllMain(DWORD dwReason, LPVOID lpReserved) {
// add your own code here
return __super::DllMain(dwReason, lpReserved);
}
};
Anforderungen
Attribut-Kontext
Betrifft |
Überall |
Wiederholbar |
Nein |
Erforderliche Attribute |
None |
Ungültige Attribute |
None |
Weitere Informationen finden Sie unter Attribut-Kontexte.