#include #include #include typedef struct { int newmode; } _startupinfo; int __getmainargs(int *pargc, char ***pargv, char ***penv, int globb, _startupinfo *); void _start(void) { int ret; int argc; TCHAR **argv; TCHAR **env; _startupinfo start_info = { 0 }; UINT cant = 1000000; BYTE *p; //Alert: fulling heap while (cant > 1) { p = (BYTE *) malloc(cant); if (!p) { cant /= 2; } } printf("Setting argc to -1 and argv to 1.\n"); argc = -1; argv = (TCHAR **) 1; printf("Content of argc:%d argv:0x%X\n", argc, argv); printf("Calling __getmainargs.\n"); ret = __getmainargs(&argc, &argv, &env, 0, &start_info); if (ret) { printf("__getmainargs failed!\n"); } printf("Result of __getmainargs: %d\n", ret); printf("Content of argc:%d argv:0x%X\n", argc, argv); ExitProcess(0); }