CommandLine Options Parameter Visual C++ 6.0



  • Hallo

    Ich habe ein Problem.
    Leider komme ich nicht so weiter wie erhofft.

    Ich habe eine MFC-Anwendung geschrieben, läuft gut 🙂
    Nun möchte ich dieses Programm über die Commandozeile aufrufen.
    Dabei möchte ich mehrere Parameter übergeben.

    der Aufruf würde wie folgt aussehen:

    viewer.exe -d "user/pass@db" -r "Report.rpt" -p "Pfad" -u "logon"

    Mit dieser m_lpCmdLine Variable kann ich mir die Kommandozeile anzeigen lassen.
    Nun möchte ich diese Zeile nicht als ganzen String, SONDERn ich möchte einzeln die OPTIONS-Parameter aus der CommandLine lesen.
    Ich glaube bei perl gibt es eine Funktion getopt(d:r:p:u:/.....)
    die das ermöglicht.

    Aber ich brauche das in VC++
    kann mir da jemand helfen, ist wichtig für mich.
    damit wäre mein Programm fertiggestellt u ich kann mich anderen Aufgaben witmen.

    Vielen DANK im Voraus

    Reci (ManagerRichie@gmx.de)



  • Servus,

    erst klasse erstellen.

    .h

    class CMyCmdLineInfo : public CCommandLineInfo  
    {
    public:
    	CMyCmdLineInfo();
    	virtual ~CMyCmdLineInfo();
       virtual void ParseParam(LPCSTR pszParam, BOOL bFlag, BOOL bLast);
    };
    

    dann mit ParseParam auslesen
    .cpp

    CMyCmdLineInfo::CMyCmdLineInfo()
    {
       m_bWasweissich=FALSE;
      }
    
    CMyCmdLineInfo::~CMyCmdLineInfo()
    {
    
    }
    
    void CMyCmdLineInfo::ParseParam(LPCSTR pszParam, BOOL bFlag, BOOL bLast)
       {
       if (bFlag)
          {
          if (!stricmp("a",pszParam))
             m_bIrgendwasMember=TRUE;
    
          if (!strnicmp("e:",pszParam,2)) //Erster Parameter danach folgt noch was
             m_strSourceDir=(pszParam+2);
    
          }
       CCommandLineInfo::ParseParam(pszParam, bFlag, bLast);
       }
    

    Alle Paramter werden mit "/wasweissich" angegeben.
    Steht auch glaube ich in der FAQ, wenn nicht vielleicht wärs was dafür. Ist ein einfaches Beispiel Params auszulesen.

    *winke*
    Hellsgore



  • Wieso kommt denn jetzt ne Fehlermeldung?

    "Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei"

    Wenn ich ne .cpp datei habe

    #include "CMyCmdLineInfo.h"
    
    CMyCmdLineInfo::CMyCmdLineInfo()
    {
    }
    
    CMyCmdLineInfo::~CMyCmdLineInfo()
    {
    }
    
    void CMyCmdLineInfo::ParseParam(LPCSTR pszParam, BOOL bFlag, BOOL bLast)
    {
    	CCommandLineInfo::ParseParam(pszParam, bFlag, bLast);
    }
    

    ??



  • Heisst die Datei nicht #include "MyCmdLineInfo.h" anstatt include "CMyCmdLineInfo.h"???
    und dann brauchst du noch afxwin.h. entweder in die stdafx.h oder bindest die dort ein.

    *winke*
    Hellsgore


Anmelden zum Antworten