int wmain(int argc, LPWSTR argv[]) { if (!ParseCmdline(argc, argv)) { wprintf(L"Usage: gflags [/p [image.exe] [/enable|/disable [/full]]]\n" L" [/i <image.exe> [<Flags>]]\n" L" image.exe: Image you want to deal with\n" L" /enable: enable page heap for the image\n" L" /disable: disable page heap for the image\n" L" /full: activate full debug page heap\n" L" <Flags>: A 32 bit hex number (0x00000001) that specifies\n" L" one or more global flags to set.\n" L" Without any flags, the current settings are shown.\n" L" Specify FFFFFFFF to delete the GlobalFlags entry.\n" L" Additionally, instead of a single hex number,\n" L" specify a list of abbreviations prefixed with\n" L" a '+' to add, and '-' to remove a bit.\n" L" Valid abbreviations:\n"); PrintFlags(~0, DEST_IMAGE); return 1; } if (UsePageHeap) { return PageHeap_Execute(); } else if (UseImageFile) { return ImageFile_Execute(); } return 2; }
int wmain(int argc, LPWSTR argv[]) { UINT Count; LARGE_INTEGER PerformanceCounterFrequency; PingCount = 4; Timeout = 1000; hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE); UsePerformanceCounter = QueryPerformanceFrequency(&PerformanceCounterFrequency); if (UsePerformanceCounter) { /* Performance counters may return incorrect results on some multiprocessor platforms so we restrict execution on the first processor. This may fail on Windows NT so we fall back to GetCurrentTick() for timing */ if (SetThreadAffinityMask (GetCurrentThread(), 1) == 0) UsePerformanceCounter = FALSE; /* Convert frequency to ticks per millisecond */ TicksPerMs.QuadPart = PerformanceCounterFrequency.QuadPart / 1000; /* And to ticks per microsecond */ TicksPerUs.QuadPart = PerformanceCounterFrequency.QuadPart / 1000000; } if (!UsePerformanceCounter) { /* 1 tick per millisecond for GetCurrentTick() */ TicksPerMs.QuadPart = 1; /* GetCurrentTick() cannot handle microseconds */ TicksPerUs.QuadPart = 1; } if (!ParseCmdline(argc, argv) || !Setup()) { return 1; } FormatOutput(IDS_ARPING_TO_FROM, TargetIP, SourceName); Count = 0; while (Count < PingCount || NeverStop) { Ping(); Count++; if (Count < PingCount || NeverStop) Sleep(Timeout); } Cleanup(); FormatOutput(IDS_ARPING_STATISTICS, Sent, Received); return 0; }
int WINAPI wWinMain(IN HINSTANCE hInst, IN HINSTANCE hPrevInstance, IN LPWSTR lpszCmdLine, IN int nCmdShow) { LPWSTR *lpArgs; INT NumArgs; /* Allocate memory for the data */ g_pInfo = (PINFO)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(INFO)); if (!g_pInfo) return -1; g_pInfo->hInstance = hInst; /* Get the command line args */ lpArgs = CommandLineToArgvW(lpszCmdLine, &NumArgs); if (lpArgs) { /* Parse the command line */ if (ParseCmdline(NumArgs, lpArgs)) { /* Start the main routine */ Run(); } } /* Free the data */ HeapFree(GetProcessHeap(), 0, g_pInfo); return 0; }
int main( int argc, char **argv ) /*******************************/ { char *pEnv; int numArgs = 0; int numFiles = 0; int rc = 0; #if WILDCARDS long fh; /* _findfirst/next/close() handle, must be long! */ struct _finddata_t finfo; char drv[_MAX_DRIVE]; char dir[_MAX_DIR]; char fname[_MAX_PATH]; #endif #if 0 //def DEBUG_OUT /* DebugMsg() cannot be used that early */ int i; for ( i = 1; i < argc; i++ ) { printf("argv[%u]=>%s<\n", i, argv[i] ); } #endif pEnv = getenv( "JWASM" ); if ( pEnv == NULL ) pEnv = ""; argv[0] = pEnv; #ifndef DEBUG_OUT signal(SIGSEGV, genfailure); #endif #if CATCHBREAK signal(SIGBREAK, genfailure); #else signal(SIGTERM, genfailure); #endif MsgInit(); while ( 1 ) { if ( ParseCmdline( (const char **)argv, &numArgs ) == NULL ) break; /* exit if no source file name supplied */ numFiles++; write_logo(); #if WILDCARDS if ((fh = _findfirst( Options.names[ASM], &finfo )) == -1 ) { DebugMsg(("main: _findfirst(%s) failed\n", Options.names[ASM] )); EmitErr( CANNOT_OPEN_FILE, Options.names[ASM], ErrnoStr() ); break; } _splitpath( Options.names[ASM], drv, dir, NULL, NULL ); DebugMsg(("main: _splitpath(%s): drv=\"%s\" dir=\"%s\"\n", Options.names[ASM], drv, dir )); do { _makepath( fname, drv, dir, finfo.name, NULL ); DebugMsg(("main: _makepath(\"%s\", \"%s\", \"%s\")=\"%s\"\n", drv, dir, finfo.name, fname )); rc = AssembleModule( fname ); /* assemble 1 module */ } while ( ( _findnext( fh, &finfo ) != -1 ) ); _findclose( fh ); #else rc = AssembleModule( Options.names[ASM] ); #endif }; CmdlineFini(); if ( numArgs == 0 ) { write_logo(); printf( MsgGetEx( MSG_USAGE ) ); } else if ( numFiles == 0 ) EmitError( NO_FILENAME_SPECIFIED ); MsgFini(); return( 1 - rc ); /* zero if no errors */ }