Pergunta

Eu estava olhando para algum código e eles tiveram esta linha: #define WINVER 0x0501 no arquivo stdafx.h? Por que você precisa para definir WINVER? Como isso afeta o seu código? Alguém pode explicar?

Foi útil?

Solução

WINVER determina a plataforma SDK mínimo necessário para construir a sua aplicação, que por sua vez irá determinar em tempo de compilação que rotinas são encontrados pelos cabeçalhos.

Você pode usar isso para verificar, em tempo de compilação, que a sua aplicação vai funcionar no Windows 2000 (0x0500), por exemplo, ou no Windows XP (0x0501).

página do MSDN sobre Modificando WINVER e _WIN32_WINNT vai para isso com mais detalhes.

Outras dicas

WINVER define o sistema mínimos do Windows o programa pode ser executado em. Há uma explicação mais detalhada no MSDN . Que meios #define WINVER 0x0501 é que o programa requer o Windows XP ou Server 2003 para ser executado, e que, portanto, pode usar a funcionalidade do Windows através essa versão.

WINVER significa Versão do Windows. Em poucas palavras, se você está construindo para uma versão específica do Windows, algumas APIs estão disponíveis que não estão disponíveis em versões anteriores.

Ao definir WINVER macro você unhide um conjunto de funções específicas para uma determinada versão do Windows. Por exemplo, se você defini-lo como #define WINVER 0x0502 você não será capaz de uso TaskDialog que está disponível apenas no Windows Vista. Para mais detalhes você poderá ler a Usando Windows cabeçalhos artigo na MSDN.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top