Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico descreve as macros de configuração do C++/WinRT. A menos que indicado de outra forma, essas regras se aplicam a todas as macros de configuração do C++/WinRT:
- Todos os arquivos vinculados para formar um único módulo (
.exeou.dll) devem ter configurações de macro idênticas. Isso inclui bibliotecas estáticas. - Todas as configurações de macro devem ser concluídas antes de incluir qualquer arquivo de cabeçalho C++/WinRT.
- Talvez você não altere nenhuma configuração de macro depois de incluir qualquer arquivo de cabeçalho C++/WinRT.
WINRT_LEAN_AND_MEAN
Se definido, desabilita esses recursos raramente usados (para reduzir os tempos de compilação):
- A capacidade de implementar interfaces exclusivas fora do componente.
- especializações std::hash para ponteiros inteligentes de classe de interface e runtime.
- Suporte para enviar diretamente um hstring ou IStringable para um fluxo do C++, desde a versão 2.0.221101.3.
Você tem permissão para combinar arquivos com configurações diferentes para WINRT_LEAN_AND_MEAN.
Arquivos que não definem WINRT_LEAN_AND_MEAN ganham acesso aos recursos pouco usados.
WINRT_NO_MODULE_LOCK
Se definido, desabilita as contagens de objetos para o módulo atual. O módulo nunca é descarregado do processo. Definir essa macro é comum em executáveis (que nunca podem ser descarregados) ou em .dlls que você pretende manter fixados. Não pode ser combinado com WINRT_CUSTOM_MODULE_LOCK.
WINRT_CUSTOM_MODULE_LOCK
Se definido, permite que você forneça sua própria implementação de winrt::get_module_lock. Pode não ser combinado com WINRT_NO_MODULE_LOCK.
Sua implementação personalizada de winrt::get_module_lock deve dar suporte às seguintes operações:
-
++winrt::get_module_lock(): incremente a contagem de referência no bloqueio do módulo. -
--winrt::get_module_lock(): Decremente a contagem de referência do bloqueio do módulo. -
if (winrt::get_module_lock()): verifique se a contagem de referência não é zero. (Necessário se você estiver criando uma DLL.)
WINRT_ASSERT, WINRT_VERIFY
Essas macros permitem personalizar o tratamento de asserção. WINRT_ASSERT não exige que o argumento seja avaliado. WINRT_VERIFY exige que o argumento seja avaliado, mesmo em compilações sem depuração.
Se você não personalizar essas macros e _DEBUG estiver definida, c++/WinRT as tornará equivalentes a _ASSERTE.
Se você não personalizar essas macros e _DEBUG não estiver definido, então C++/WinRT define WINRT_ASSERT para descartar a expressão sem avaliá-la e define WINRT_VERIFY para descartar a expressão depois de avaliá-la.
WINRT_NO_MAKE_DETECTION
Se definido, desabilita o diagnóstico padrão do C++/WinRT que detecta que você construiu erroneamente uma classe de implementação sem usar winrt::make.
É altamente recomendável que você não defina esse símbolo, pois fazer isso mascara uma fonte comum de erros de programação.
WINRT_NO_SOURCE_LOCATION
Se definido, desativa a inclusão de informações sobre o arquivo de origem e o número da linha (e, em compilações de depuração, informações sobre a função) ao gerar erros.
Essas informações adicionais não são usadas pelo C++/WinRT, mas são disponibilizadas para outras bibliotecas que desejam interoperar com exceções C++/WinRT, como a Biblioteca de Implementação de Windows.
Por padrão, as informações são incluídas quando compiladas no modo C++20 ou superior. Talvez você queira suprimir essas informações para reduzir o tamanho binário.
WINRT_DIAGNOSTICS
Se definido, permite que as estatísticas internas acompanhem várias operações:
- O número de vezes que cada interface foi consultada.
- O número de vezes que cada fábrica foi solicitada (e se a fábrica é ágil).
WINRT_NATVIS
Se definido, inclui funções auxiliares para auxiliar em visualizações de depuração nativas em Visual Studio. O código não é usado em runtime; ele existe apenas para depuração.
Se você não personalizar essa macro, as funções de suporte à visualização serão habilitadas se _DEBUG estiver definido. Para obter mais detalhes, consulte visualização de depuração nativa (natvis) do Visual Studio para C++/WinRT.
Você tem permissão para combinar arquivos com configurações diferentes para WINRT_NATVIS.
Se qualquer arquivo for compilado com WINRT_NATVIS suporte, o módulo resultante terá visualizações de depuração nativas habilitadas.
WINRT_EXPORT, WINRT_FAST_ABI_SIZE
Não use essas macros.
Windows developer