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.
Sie können eine MSIL-Datei .obj (kompiliert mit /clr) als .netmodule Datei verwenden.
.obj Dateien enthalten Metadaten und systemeigene Symbole.
.netmodules nur Metadaten enthalten.
Übergeben Sie eine MSIL-Datei .obj an einen anderen Visual Studio-Compiler mit der /addmodule Compileroption. Die .obj Datei wird Teil der resultierenden Assembly und muss mit der Assembly ausgeliefert werden. Beispielsweise verfügen Visual C# und Visual Basic über die /addmodule Compileroption.
Note
In den meisten Fällen müssen Sie die Datei von der .obj Kompilierung, die das .net-Modul erstellt hat, an den Linker übergeben. Das Übergeben einer Moduldatei oder .netmodule eines .dll MSIL-Moduls an den Linker kann zu LNK1107 führen.
.obj Dateien zusammen mit den zugehörigen .h Dateien, auf die Sie über #include in der Quelle verweisen, ermöglichen C++-Anwendungen die Nutzung der systemeigenen Typen im Modul. In einer .netmodule Datei können nur die verwalteten Typen von einer C++-Anwendung genutzt werden. Wenn Sie versuchen, eine .obj Datei an #using zu übergeben, sind keine Informationen zu systemeigenen Typen verfügbar. #include sie stattdessen die .obj Datei aus .h .
Andere Visual Studio-Compiler können nur verwaltete Typen aus einem Modul nutzen.
Verwenden Sie die folgenden Anleitungen, um zu bestimmen, ob Sie eine .netmodule oder eine .obj Datei als Moduleingabe für den MSVC-Linker verwenden müssen:
Wenn Sie mit einem anderen Visual Studio-Compiler als Visual C++ erstellen, erstellen Sie eine
.netmoduleund verwenden sie.netmoduleals Eingabe für den Linker.Wenn Sie den MSVC-Compiler zum Erstellen von Modulen verwenden und wenn die Module verwendet werden, um etwas anderes als eine Bibliothek zu erstellen, verwenden Sie die
.objvom Compiler erzeugten Dateien als Moduleingabe für den Linker. Verwenden Sie die.netmoduleDatei nicht als Eingabe.Wenn Ihre Module verwendet werden, um eine systemeigene (keine verwaltete) Bibliothek zu erstellen, verwenden Sie
.objDateien als Moduleingabe für den Linker, und generieren Sie eine.libBibliotheksdatei.Wenn Ihre Module zum Erstellen einer verwalteten Bibliothek verwendet werden und alle Moduleingaben für den Linker überprüft werden können (erstellt mit
/clr:safe), verwenden Sie.objDateien als Moduleingabe für den Linker, und generieren Sie eine.dll(Assembly) oder.netmodule(Modul)-Bibliotheksdatei.Wenn Ihre Module zum Erstellen einer verwalteten Bibliothek verwendet werden und ein oder mehrere Moduleingaben für den Linker nur
/clrerstellt werden, verwenden Sie.objDateien als Moduleingabe für den Linker, und generieren Sie eine.dll(Assembly). Wenn Sie verwaltete Typen aus der Bibliothek verfügbar machen möchten und auch C++-Anwendungen die systemeigenen Typen in der Bibliothek nutzen sollen, besteht Ihre Bibliothek aus den.objDateien für die Bibliothekenkomponentenmodule. Sie möchten auch die.hDateien für jedes Modul versenden, damit sie mit #include aus dem Quellcode referenziert werden können.