Vraag & Antwoord

Programmeren

[C++] WinMain and command line arguments

4 antwoorden
  • Hoi, Ik ben een programma aan het maken dat moet kunnen draaien op Windows 2000/XP, maar ook 98/SE/ME. Onder 2000/XP maak ik gebruik van de CommandLineToArgvW API om een argc/argv paartje te krijgen. In 98/SE/ME is deze API helaas niet beschikbaar en dus zoek ik een andere manier om een argc/argv paartje te krijgen. Heeft iemand suggesties? - Mark
  • Snap je probleem niet helemaal. WinMain heeft toch al een parameter [b:80512e17e8]lpCmdLine[/b:80512e17e8] die de commandline bevat. Het volgende komt uit lcc-win32: [code:1:80512e17e8] int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { } [/code:1:80512e17e8]Even doorheen lopen met een loopje en je hebt al je argumenten.
  • Hoi, Als ik het programma activeer als: core.exe -a TestModule.dll -o readfile Dan staat in de lpCmdLine van WinMain: lpCmdLine = "-a TestModule.dll -o readfile" Terwijl een argc/argv paartje dit zou hebben: argc = 5 argv[0] = "core.exe" argv[1] = "-a" argv[2] = "TestModule.dll" argv[3] = "-o" argv[4] = "readfile" Dit laatste vind ik makkelijker werken, want daar kun je makkelijk met een lusje doorheen gaan: [code:1:40673cdf16] for( int i=1; i<argc; i++ ) { // ... } [/code:1:40673cdf16] Nu doe ik dat door gebruik te maken van: [code:1:40673cdf16] int argc; wchar_t **argv = CommandLineToArgv( GetCommandLine(), &argc ); if( argv == NULL ) return 0; [/code:1:40673cdf16] Dit werkt echter alleen in Windows 2000/XP... - Mark
  • Uiteraard is een ingebakken functie makkelijker. Maar als de functie niet bestaat, bestaat deze niet en moet je 'm zelf schrijven (lijkt me).

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.