Udostępnij za pośrednictwem


Wybieranie formatu .netmodule pliki danych wejściowych

Plik .obj MSIL (skompilowany z /CLR) mogą być również używane jako.plik netmodule.pliki .obj zawierają metadane i symbole macierzystym..netmodules zawierać tylko metadanych.

Można przekazać pliku .obj MSIL innych kompilator Visual Studio za pomocą opcji kompilatora /addmodule (ale należy pamiętać, że plik .obj staje się częścią zestawu wynikowego i muszą być wysłane z zestawu).Na przykład Visual C# i Visual Basic mają opcję kompilatora /addmodule.

[!UWAGA]

W większości przypadków należy przekazać do programu łączącego pliku .obj z kompilacji, utworzony.Moduł netto.Jedynym wyjątkiem jest Jeśli.netmodule został utworzony za pomocą /CLR: czysty.Przekazując .dll lub.plik modułu MSIL netmodule do programu łączącego może skutkować LNK1107.

pliki .obj, wraz z ich plikami .h skojarzone, które możesz odwołania za pośrednictwem # dołączyć źródła, umożliwiają aplikacji C++ zużyje macierzystym typów w module, należy w.plik netmodule, mogą być wykorzystane tylko typy zarządzane przez aplikację C++.Jeśli podczas próby przekazania pliku .obj # przy użyciu, informacji na temat typów macierzysty nie będą dostępne; # include plik .h pliku .obj zamiast.

Inne kompilatory Visual Studio zajmowane tylko typy zarządzane z poziomu modułu.

Aby ustalić, czy należy użyć poniższego.netmodule lub pliku .obj jako dane wejściowe modułu linker Visual C++:

  • Jeśli tworzysz z kompilatorem Visual Studio, innych niż Visual C++, produkcji.netmodule i używać.netmodule jako dane wejściowe do programu łączącego.

  • Jeśli używasz kompilatora Visual C++ do produkcji, moduły i jeśli modułów zostanie użyta do zbudowania czegokolwiek innego niż biblioteki, należy użyć plików .obj produkowane przez kompilator jako dane wejściowe modułu linker; nie należy używać.netmodule pliku jako danych wejściowych.

  • Jeśli moduły będą używane do tworzenia biblioteki w trybie macierzystym (nie zarządzany), użyj .obj pliki jako dane wejściowe modułu do programu łączącego i wygenerować plik .lib biblioteki.

  • Jeśli moduły, które będą używane do tworzenia zarządzanych biblioteki i wszystkie dane wejściowe modułu program łączący będzie możliwe do zweryfikowania (wyprodukowany z /clr:safe), użyj .obj pliki jako dane wejściowe modułu do programu łączącego i wygenerować .dll (montaż) lub.plik biblioteki netmodule (moduł).

  • Moduły, które będą używane do tworzenia zarządzanych biblioteki i wszystkie dane wejściowe modułu program łączący będzie produkowane z/CLR: czysty lub /clr:safe, używać plików .obj jako dane wejściowe modułu do programu łączącego i wygenerować .dll (montaż) lub.netmodule (moduł), jeśli chcesz udostępnić typy zarządzane z biblioteki.Jeśli chcesz udostępnić typy zarządzane z biblioteki i jeśli chcesz również zużywają macierzysty typy w bibliotece aplikacji C++, biblioteka składa się z plików .obj dla modułów części biblioteki (będzie również chcesz wysłać pliki .h dla każdego modułu, tak można się odwoływać z # obejmują z kodu źródłowego).

  • Jeśli moduły, które będą używane do tworzenia zarządzanych biblioteki i jeden lub więcej danych wejściowych modułów do program łączący będzie produkowane z tylko/CLR, używać plików .obj jako dane wejściowe modułu do programu łączącego i wygenerować .dll (zestawu).Jeśli chcesz udostępnić typy zarządzane z biblioteki i jeśli chcesz również zużywają macierzysty typy w bibliotece aplikacji C++, biblioteka składa się z plików .obj dla modułów części biblioteki (będzie również chcesz wysłać pliki .h dla każdego modułu, tak można się odwoływać z # obejmują z kodu źródłowego).

Zobacz też

Informacje

pliki .netmodule jako dane wejściowe Linker