Questa risposta è per il 2018 e, per quanto ne so, si applica a tutte le versioni di Windows da Vista (fornitura di aggiornamenti).
La risposta breve è: non puoi. O più precisamente, puoi farlo, ma ti trascineranno i denti in ogni fase del processo, trascorrendo innumerevoli ore di lavoro a combattere per far sì che l'API funzioni per te piuttosto che contro di te, ed è semplicemente una questione se ne valga la pena .
L'API di Windows è progettata per essere da incubo da utilizzare senza MSVC, perché Microsoft vuole che tu usi l'intera soluzione di sviluppo e non ti danno la possibilità di evitare Visual Studio se usi le loro librerie. Anche se può sembrare conveniente e ragionevole che il sistema operativo venga fornito con Windows SDK gratuitamente, non funzionerà senza la libreria standard C, che viene fornita come download da Microsoft. Quando scarichi questa libreria tramite il programma di installazione, scoprirai che l'UCRT di Microsoft dipende dalle intestazioni trovate solo nel pacchetto Visual C ++, che è un download di 600 MB + e consuma oltre 2 GB quando installato. E dopo tutto ciò, il tuo compilatore farà il default per soffocare sul dialetto personalizzato di Microsoft C, che non è C99 ma usa commenti di linea e ha innumerevoli altre trappole progettate specificamente per far scattare compilatori sane.
Quanto sopra inoltre non graffia nemmeno la superficie legale che il tuo team potrebbe dover delegare per costare ancora più denaro in modo da poter capire cosa è ridistribuibile e sotto quali termini. Le librerie di MinGW risolvono non solo i problemi legali per le librerie standard (grazie alla clausola GPL), ma rendono anche indolore l'uso nell'effettivo ISO C / C ++.
La mia esperienza con questo problema deriva da un progetto a cui sto lavorando per sviluppare un codebase utilizzando un processo di build unificato basato su LLVM. Tutto funziona abbastanza bene su Linux e macOS, ma su Windows senza MinGW mi ci sono voluti giorni per passare inosservatamente a questo, e non sono nemmeno entrato nel singhiozzo che ci sarà inevitabilmente durante il collegamento con LLD. Non vale la pena utilizzare Microsoft, a meno che tu non stia utilizzando MSVC, perché Microsoft dice di andare fino in fondo o di andare a casa, e hanno messo il loro codice con la loro bocca con quella.