Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile usare un file MSIL .obj (compilato con /clr) come .netmodule file.
.obj i file contengono metadati e simboli nativi.
.netmodules contengono solo metadati.
Passare un file MSIL .obj a qualsiasi altro compilatore di Visual Studio con l'opzione del /addmodule compilatore. Il .obj file diventa parte dell'assembly risultante e deve essere fornito con l'assembly. Ad esempio, Visual C# e Visual Basic hanno l'opzione del /addmodule compilatore.
Note
Nella maggior parte dei casi, è necessario passare al linker il .obj file dalla compilazione che ha creato il modulo .net. Il passaggio di un .dll file di modulo o .netmodule MSIL al linker potrebbe comportare LNK1107.
.obj i file, insieme ai relativi file associati .h , a cui si fa riferimento tramite #include nell'origine, consentono alle applicazioni C++ di utilizzare i tipi nativi nel modulo. In un .netmodule file, solo i tipi gestiti possono essere utilizzati da un'applicazione C++. Se si tenta di passare un .obj file a #using, le informazioni sui tipi nativi non sono disponibili. Al contrario, #include il .obj file del .h file.
Altri compilatori di Visual Studio possono utilizzare solo tipi gestiti da un modulo.
Usare le indicazioni seguenti per determinare se è necessario usare un .netmodule file o .obj come input del modulo per il linker MSVC:
Se si compila con un compilatore di Visual Studio diverso da Visual C++, generare e
.netmoduleusare come.netmoduleinput per il linker.Se si usa il compilatore MSVC per produrre moduli e se i moduli vengono usati per compilare elementi diversi da una libreria, usare i
.objfile prodotti dal compilatore come input del modulo per il linker. Non usare il.netmodulefile come input.Se i moduli vengono usati per compilare una libreria nativa (non gestita), usare
.obji file come input del modulo per il linker e generare un.libfile di libreria.Se i moduli vengono usati per compilare una libreria gestita e se tutti gli input del modulo per il linker sono verificabili (prodotti con
/clr:safe), usare.obji file come input del modulo per il linker e generare un.dllfile di libreria (assembly) o.netmodule(modulo).Se i moduli vengono usati per compilare una libreria gestita e se uno o più moduli di input per il linker vengono prodotti con solo
/clr, usare.obji file come input del modulo per il linker e generare un.dllassembly . Se si desidera esporre i tipi gestiti dalla libreria e se si desidera che le applicazioni C++ consumino anche i tipi nativi nella libreria, la libreria è costituita dai.objfile per i moduli dei componenti delle librerie. Si vogliono anche spedire i.hfile per ogni modulo, in modo che possano essere referenziati con #include dal codice sorgente.