Opções de compilador e vinculador (C++/CX)

Uma variável de ambiente, as opções do compilador e do vinculador C++/CX dão suporte à compilação de aplicativos para o Windows Runtime.

Caminho da biblioteca

A variável de ambiente %LIBPATH% especifica o caminho padrão para procurar por arquivos .winmd.

Opções do compilador

Opção Descrição
/ZW

/ZW:nostdlib
Habilita as extensões de linguagem do Windows Runtime.

O parâmetro nostdlib impede que o compilador use o caminho de pesquisa padrão e predefinido para encontrar arquivos de assembly e .winmd.

A opção /ZW do compilador especifica implicitamente as opções do compilador:

- /FI vccorlib.h, que força a inclusão do arquivo de cabeçalho vccorlib.h, que define vários tipos que são necessários para o compilador.
- /FU Windows.winmd, que força a inclusão do arquivo de metadados Windows.winmd, fornecido pelo sistema operacional e que define vários tipos no Windows Runtime.
- /FU Platform.winmd, que força a inclusão do arquivo de metadados Platform.winmd, que é fornecido pelo compilador e que define a maioria dos tipos na família Platform de namespaces.
/AI dir Adiciona um diretório, que é especificado pelo parâmetro dir , para o demarcador de pesquisa usado pelo compilador para encontrar arquivos de assembly e .winmd.
/FU arquivo Força a inclusão do módulo especificado ou do arquivo .winmd. Ou seja, não é necessário especificar #usingarquivo em seu código-fonte. O compilador força automaticamente a inclusão de seu próprio arquivo de metadados do Windows, Platform.winmd.
/D "WINAPI_FAMILY=2" Cria uma definição que permite o uso de um subconjunto do SDK do Win32 que é compatível com o Windows Runtime.

Opções do vinculador

Opção Descrição
/APPCONTAINER[:NO] Marca o executável como executável (somente) no appcontainer.
/WINMD[:{NO|ONLY}] Emite um arquivo .winmd e um arquivo binário associado. Essa opção deve ser transmitida para o vinculador para que um .winmd seja emitido.

NO– Não emite um arquivo .winmd, mas emite um arquivo binário.

ONLY– Emite um arquivo .winmd, mas não emite um arquivo binário.
/WINMDFILE:nomedoarquivo O nome do arquivo .winmd para emitir, em vez do nome de arquivo .winmd padrão. Se forem especificados vários nomes de arquivo na linha de comando, o sobrenome será usado.
/WINMDDELAYSIGN[:NO] Parcialmente assina o arquivo .winmd e coloca a chave pública no binário.

NO– (Padrão) Não assinar o arquivo .winmd.

/WINMDDELAYSIGN não tem nenhum efeito a menos que /WINMDKEYFILE ou /WINMDKEYCONTAINER também seja especificado.
/WINMDKEYCONTAINER:nome Especifica um contêiner de chave para assinar um assembly. O parâmetro name corresponde ao contêiner de chave usado para assinar o arquivo de metadados.
/WINMDKEYFILE:nomedoarquivo Especifica uma chave ou um par de chaves para assinar o assembly. O parâmetro filename corresponde à chave usada para assinar o arquivo de metadados.

Comentários

Quando você usa o /ZW, o compilador é vinculado automaticamente à versão DLL do CRT (Runtime do C). Não é permitida a vinculação à versão da biblioteca estática, e qualquer uso das funções CRT que não sejam permitidas em um aplicativo da Plataforma Universal do Windows causará um erro em tempo de compilação.

Confira também

Como compilar aplicativos e bibliotecas