Windows application. Per "cambiare la firma del main" intendo che nelle applicazioni GUI su Windows non c'è il main, ma c'è il WinMain, che ha una "firma" (signature, prototipo) diversa (vedi qui e qui).
Amaro C++, il gusto pieno dell'undefined behavior.