Probleme beim einlesen der Kommandozeile



  • Hallo,

    ich wollte mir eine kleine Klasse schreiben die für mich das Einlesen und das Verarbeiten der Kommandozeilen-Parameter erledigt. Die Klasse sieht so aus:

    #include <windows.h>
    #include "CMLParser.hpp"
    
    CMLParser::CMLParser(void) {	
    
    }
    
    CMLParser::CMLParser(LPSTR argv, int argn) {	
    	CMLParser::lpCmdLine = argv;
    	CMLParser::nCmdShow	= argn;
    }
    
    CMLParser::~CMLParser() {
    
    }
    
    bool 
    CMLParser::verifyCML() {	
    	if((CMLParser::nCmdShow) > 1) {		
    		return true;
    	}
    
    	return false;
    }
    

    Ihre Header-Datei:

    #ifndef CMLParser_hpp
    #define CMLParser_hpp CMLParser_hpp
    
    class CMLParser {
    	public:
    		//default constructor
    		CMLParser();
    
    		//custom constructor
    		CMLParser(LPSTR, int);
    
    		//destructor
    		~CMLParser();
    
    		//verify that at least one parameter was supplied
    		bool verifyCML(void);
    	private:
    		LPSTR lpCmdLine;
    		int nCmdShow;
    };
    
    #endif
    

    So versuche ich das ganze aufzurufen.....

    CMLParser	 *cmlParser;
    
    int WINAPI WinMain(	HINSTANCE	hInstance, 
    					HINSTANCE hPrevInstance,
    					LPSTR lpCmdLine, 
    					int nCmdShow) { 	
    
    	/* save main instance of the application
    	 */
    	global_hInstance	= hInstance;	
    
    	/* generate cml parser object and verfify whether a valid
    	 * commandline is passed...
    	 */	
    	cmlParser = new CMLParser(lpCmdLine, nCmdShow);	
    
    	if(!cmlParser->verifyCML()) {		
    		return DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, MainDlgProc);
    	}
    

    Leider funktioniert das ganze so nicht so recht...
    Hat jemand eine Idee was ich falsch mache ?

    Danke schonmal,

    Gruß Ben.



  • Leider funktioniert das ganze so nicht so recht...
    Hat jemand eine Idee was ich falsch mache ?

    🙄



  • Ich hab mittlerweile mein Problem gefunden. Wenn man nicht weiß was welcher Parameter zu bedeuten hat, dann sollte man es lieber nachlesen, sorry...



  • Warscheinlich schon zu spät, aber guck Dir mal diese Funktionen an, sind vllt hilfreich 😉 :
    - http://msdn2.microsoft.com/en-us/library/ms683156.aspx
    - http://msdn2.microsoft.com/en-us/library/ms647232.aspx


Anmelden zum Antworten