O arquivo de cabeçalho Windows.h para a API Win32 é um arquivo gigante de inclusão, adicionando centenas de milhares de novas macros, estruturas e funções.
Este projeto visa modularizar o arquivo Windows.h, para incluir apenas o que você precisa.
Todas as contribuições são bem-vindas . Se fizermos um esforço de crowdsourcing, isso poderá ser concluído muito mais rapidamente. Se alguma função estiver faltando, sinta-se à vontade para adicioná-la e enviar uma solicitação pull. Vou mesclá-los o mais rápido possível
O único diretório de interesse é include
, copie o conteúdo do diretório para o seu projeto, defina o caminho de inclusão para apontar para o diretório que contém o diretório win32
.
Devido à nomenclatura muito genérica e ao perigo de colisões de nomes, é recomendado sempre mantê-los no diretório win32
e mantê-lo explícito nas diretivas de inclusão: #include
.
O diretório win32
contém o seguinte:
windows_base.h
atomic.h
dbghelp.h
dds.h
file.h
gdi.h
io.h
misc.h
process.h
sysinfo.h
threads.h
window.h
#include
'ing os arquivos acima):windows_modular.h
windows.h
windows_base.h
é incluído por cada um dos arquivos de inclusão modulares e contém os tipos, macros e estruturas necessárias usadas por vários módulos.
Tentamos fornecer uma substituição completa para os próprios cabeçalhos da Microsoft, mantendo uma quantidade razoável de compatibilidade e não quebrando nenhum código existente.
No entanto, existem algumas alterações importantes que você deve estar ciente:
A
ou W
, por exemplo CreateFileA
e CreateFileW
.MIN
/ MAX
não são fornecidas, equivalentes a #define NOMINMAX
. O diretório test
contém um caso de teste simples.
O caso de teste consiste em compilar cada arquivo de módulo com avisos completos ativados, isso garantirá que todas as dependências sejam atendidas e nenhum aviso seja emitido.
Pode ser executado chamando:
$ nmake
Requer CL.EXE
e NMAKE.EXE
em seu caminho.
Este projeto contém partes do Microsoft Windows SDK. Eles são licenciados pelo EULA da Microsoft. Para usá-lo você deve ler e concordar com ele.
O restante possui licença dupla sob as licenças "MIT" e "Unlicense".