Below is a sample program that demonstrates that the GetCommandLine function is not returning the command line arguments. I attached cygcheck.out. #include #include int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) { char* text = GetCommandLine(); printf("getcmdline: %s\n", text); return 0; } gcc test_wmain.c -o test $ ./test hello world getcmdline: "C:\cygwin64\home\mbarry\game-repos\greenbeam\src\test.exe"