Escolha o formato de .netmodule arquivos de entrada

Um arquivo .obj do MSIL (compilado com / CLR) também pode ser usado sistema autônomo um.arquivo netmodule.arquivos .obj contêm metadados e símbolos nativo..netmodules conter somente metadados.

Você pode passar um arquivo de .obj MSIL para qualquer Outros compilador do Visual Studio por meio da opção do compilador /addmodule (mas lembre-se de que o arquivo .obj se torna parte do assembly resultante e deve ser fornecido com o assembly).Por exemplo, translation from VPE for Csharp Visual e o Visual Basic tem opção do compilador /addmodule.

Observação:

Na maioria dos casos, você precisará passar para o vinculador arquivo .obj de compilação que criou o.módulo de rede.Uma exceção é se a.netmodule foi criado com / CLR: puro.Passando uma .dll ou.arquivo de módulo netmodule MSIL para o vinculador pode resultar em LNK1107.

arquivos .obj, juntamente com seus arquivos .h associado, qual referência você via # incluir na fonte, permitem que os aplicativos C++ consumir os tipos nativo no módulo, enquanto que em um.arquivo netmodule, somente os tipos gerenciado podem ser consumidos por um aplicativo C++.Se você tentar passar um arquivo .obj para # using, informações sobre tipos nativo não estará disponível; # incluir arquivo de .h do arquivo .obj em vez disso.

Outros compiladores do Visual Studio só podem consumir tipos gerenciado a partir de um módulo.

Use o seguinte para determinar se você precisa usar um.netmodule ou um arquivo .obj sistema autônomo módulo de entrada para o vinculador Visual C++:

  • Se você estiver criando com um compilador do Visual Studio Outros que o Visual C++, produzir um.netmodule e usar o.netmodule sistema autônomo entrada para o vinculador.

  • Se estão usando o compilador do Visual C++ para produzir sistema autônomo módulos e sistema autônomo módulos serão usados para compilação algo diferente de uma biblioteca, use sistema autônomo arquivos .obj produzidos pelo compilador sistema autônomo módulo de entrada para o vinculador; não use o.arquivo netmodule sistema autônomo entrada.

  • Se sistema autônomo módulos serão usados para compilação uma biblioteca nativa (não um gerenciado), usar arquivos .obj sistema autônomo módulo de entrada para o vinculador e gerar um arquivo de biblioteca .lib.

  • Se seus módulos serão usados para criar uma biblioteca gerenciada, e se todas sistema autônomo entradas de módulo para o vinculador será verificável (produzida com/CLR: safe), usar arquivos .obj sistema autônomo módulo de entrada para o vinculador e gerar um arquivo .dll (assembly) ou.arquivo de biblioteca netmodule (módulo).

  • Se sistema autônomo módulos serão usados para compilação uma biblioteca gerenciada, e se todas sistema autônomo entradas de módulo para o vinculador serão produzidas com/CLR: puro ou/CLR: safe, usar arquivos .obj sistema autônomo módulo de entrada para o vinculador e gerar um arquivo .dll (assembly) ou.netmodule (módulo) se desejar expor tipos gerenciado a partir da biblioteca.Se você deseja expor tipos gerenciado a partir da biblioteca e se você também desejar aplicativos C++ para consumir os tipos nativo na biblioteca do, sua biblioteca consistirá os arquivos .obj para os módulos de componente de bibliotecas (você também desejará enviar os arquivos .h para cada módulo, para que eles podem ser referenciados com # incluem do código-fonte).

  • Se seus módulos serão usados para criar uma biblioteca gerenciada, e se um ou mais entradas de módulos para o vinculador serão produzidas com/CLR apenas, usar arquivos .obj sistema autônomo módulo de entrada para o vinculador e gerar um arquivo .dll (assembly).Se você deseja expor tipos gerenciado a partir da biblioteca e se você também desejar aplicativos C++ para consumir os tipos nativo na biblioteca do, sua biblioteca consistirá os arquivos .obj para os módulos de componente de bibliotecas (você também desejará enviar os arquivos .h para cada módulo, para que eles podem ser referenciados com # incluem do código-fonte).

Consulte também

Referência

arquivos .netmodule sistema autônomo entrada do vinculador