Sdílet prostřednictvím


Výběr formátu vstupních souborů .netmodule

Soubor .obj jazyka MSIL (kompilovaný pomocí /clr) lze použít také jako soubor .netmodule. .obj soubory obsahují metadata a nativní symboly. .netmodules obsahují pouze metadata.

Soubor MSIL .obj můžete předat libovolnému jinému kompilátoru sady Visual Studio prostřednictvím možnosti kompilátoru /addmodule (ale mějte na paměti, že .obj soubor se stane součástí výsledného sestavení a musí být dodáván se sestavením). Například Visual C# a Visual Basic mají možnost kompilátoru /addmodule.

Poznámka:

Ve většině případů budete muset předat linkeru soubor .obj z kompilace, která vytvořila modul .net. Předání souboru modulu MSIL .dll nebo .netmodule do linkeru může vést k LNK1107.

.obj soubory spolu s přidruženými soubory .h, na které odkazujete prostřednictvím #include ve zdroji, povolte aplikacím C++ využívat nativní typy v modulu, zatímco v souboru .netmodule lze využívat pouze spravované typy aplikace jazyka C++. Pokud se pokusíte předat soubor .obj #using, nebudou informace o nativních typech k dispozici; #include soubor .h souboru .obj.

Další kompilátory sady Visual Studio můžou využívat pouze spravované typy z modulu.

Pomocí následujícího příkazu určete, jestli potřebujete jako vstup modulu do linkeru MSVC použít soubor .netmodule nebo soubor .obj:

  • Pokud vytváříte pomocí jiného kompilátoru sady Visual Studio než Visual C++, vytvořte modul .netmodule a jako vstup do linkeru použijte modul .netmodule.

  • Pokud používáte kompilátor MSVC k vytváření modulů a pokud se moduly použijí k sestavení něčeho jiného než knihovny, použijte .obj soubory vytvořené kompilátorem jako vstup modulu linkeru; nepoužívejte jako vstup soubor .netmodule.

  • Pokud se moduly použijí k sestavení nativní (ne spravované) knihovny, použijte .obj soubory jako vstup modulu do linkeru a vygenerujte soubor knihovny .lib.

  • Pokud se moduly použijí k sestavení spravované knihovny a pokud budou všechny vstupy modulů do linkeru ověřitelné (vytvořené pomocí /clr:safe), použijte .obj soubory jako vstup modulu do linkeru a vygenerujte soubor knihovny .dll (sestavení) nebo .netmodule (module).

  • Pokud se moduly použijí k sestavení spravované knihovny a pokud bude jeden nebo více modulů vstup do linkeru vytvořen pouze pomocí /clr, použijte .obj soubory jako vstup modulu linkeru a vygenerujte .dll (sestavení). Pokud chcete zpřístupnit spravované typy z knihovny a chcete, aby aplikace C++ spotřebovávala nativní typy v knihovně, bude se vaše knihovna skládat z .obj souborů pro moduly komponent knihoven (budete také chtít odeslat soubory .h pro každý modul, aby je bylo možné odkazovat pomocí #include ze zdrojového kódu).

Viz také

Soubory .netmodule jako vstup linkeru