共用方式為


選擇 .netmodule 輸入檔的格式

您可以使用 MSIL .obj 檔案 (以 編譯的 /clr) 作為 .netmodule 檔案。 .obj 檔案包含元數據和原生符號。 .netmodules 只包含元數據。

使用/addmodule編譯程式選項,將 MSIL .obj 檔案傳遞至任何其他 Visual Studio 編譯程式。 檔案 .obj 會成為產生元件的一部分,而且必須隨附於元件。 例如,Visual C# 和 Visual Basic 具有 /addmodule 編譯程式選項。

Note

在大部分情況下,您需要從建立 .net 模組的編譯,將檔案傳遞至連結器 .obj 。 將 .dll.netmodule MSIL 模組檔案傳遞至連結器可能會導致LNK1107。

.obj 檔案及其相關聯的 .h 檔案,您透過來源中的 #include 參考,允許C++應用程式取用模組中的原生類型。 .netmodule在檔案中,只有受控類型可由C++應用程式取用。 如果您嘗試將檔案 .obj 傳遞至 #using,則無法使用原生類型的相關信息。 相反地,#include .obj 檔案的 .h 檔案。

其他 Visual Studio 編譯程式只能從模組取用 Managed 類型。

使用下列指引來判斷您是否需要使用 .netmodule.obj 檔案作為 MSVC 連結器模組輸入:

  • 如果您要使用 Visual C++ 以外的 Visual Studio 編譯程式進行建置,請產生 .netmodule ,並使用 .netmodule 做為連結器輸入。

  • 如果您使用 MSVC 編譯程式來產生模組,而且模組是用來建置連結庫以外的專案,請使用 .obj 編譯程式所產生的檔案作為連結器模塊輸入。 請勿使用 .netmodule 檔案做為輸入。

  • 如果您的模組是用來建置原生(非受控)連結庫,請使用 .obj 檔案作為連結器模組輸入,併產生 .lib 連結庫檔案。

  • 如果您的模組是用來建置 Managed 連結庫,而且如果連結器的所有模組輸入都是可驗證的(使用 /clr:safe產生),請使用 .obj 檔案作為連結器模組輸入,併產生 .dll (元件)或 .netmodule (模組)連結庫檔案。

  • 如果您的模組是用來建置 Managed 連結庫,而且如果只 /clr使用 產生連結器一或多個模塊輸入,請使用 .obj 檔案作為連結器模組輸入併產生 .dll (assembly)。 如果您想要從連結庫公開 Managed 類型,而且也想要C++應用程式取用連結庫中的原生類型,您的連結庫會 .obj 包含連結庫元件模組的檔案。 您也想要寄送 .h 每個模組的檔案,以便從原始程式碼 #include 參考這些檔案。

See also

.netmodule 檔作為連結器輸入