Announcement

Collapse
No announcement yet.

Zugriff auf Kommandozeilenparameter in 32bit Windows mit Borland C++5.02

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriff auf Kommandozeilenparameter in 32bit Windows mit Borland C++5.02

    Hallo, ich bin dabei, ein 16bit Windowsprogramm auf 32bit umzustricken. Ist mir auch schon zu 99% gelungen. Aber, wenn ich auf _argv[0] oder so etwas zugreifen will, gibt es zur Laufzeit eine access violation. Das Programm wird unter Borland C++5.02 ohne Warnungen oder Fehler compiliert. Aber _argv.. muß im 32bit Windows doch auch gültig sein, in der Hilfe steht, daß es unter WIN32 unterstützt wird, und mit dem BC++Builder benutze ich es auch. Ich hab NT4.0 Service Pack 3. Weiß einer Rat ? Danke - Günther
    Günther

  • #2
    Also, die Funktion GetCommandLine(); habe ich inzwischen gefunden. Aber muß man da wirklich selbst Hand anlegen, um daraus _argc und die verschiedenen Parameterwerte herauslesen zu können ? Als _argc erhält mein Programm eine riesengroße Zahl, sieht nach einer nicht initialisierten Variablen aus
    Günther

    Comment


    • #3
      Hallo Günther,

      da Du Dein Programm offenbar unter NT entwickelst, wirst Du um GetCommandLine und anschließendem Parsen nicht umhin kommen, da NT intern generell mit UNICODE arbeitet.

      Gruß
      Gerhard

      [email protected]

      Comment


      • #4
        Hallo Gerhard, Danke für die Anwort. Mein Programm wird zwar unter NT entwickelt, aber hinterher unter WIN3.1, WIN95, 98, NT und wohl auch 2000 eingesetzt. Heißt das jetzt im Klartext, daß ich 3 verschiedene Versionen brauche, WIN16, WIN32 für NT und WIN32 für WIN95 und 98 ? Oder funktioniert die NT-Lösung dann auch unter 95 und 98 ? Danke - Günthe
        Günther

        Comment


        • #5
          Hallo Günther,

          meiner Meinung nach zumindest 2 Versionen. Eine für NT und Aufwärts (Win 2000) und eine andere für den Rest WIN95/98 und WIN32s. Hier ein Stück Code, wie Du die Versionen herausfinden kannst:

          OSVERSIONINFO info;
          info.dwOSVersionInfoSize = sizeof(info);
          GetVersionEx(&info);

          if (info.dwPlatformId == 1) // 1 = WIN95/98, WIN32s ; 2 = NT
          { // WIN95 ....
          hier mit argv[]
          }
          else
          {// WINDOWS NT
          hier mit GetCommandLine
          }

          Mfg
          Gerhar

          Comment


          • #6
            Für interessierte Mitleser:

            Eine Fortsetzung dieser Diskussion findet im Borland C++ Ordner unter folgendem Titel statt:

            Probleme mit WIN32 Programm unter Windows 9
            Günther

            Comment

            Working...
            X