Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » C++ Informationen Auslesen aus Umgebungsvariable?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.06.2003, 14:22 Uhr
ai-tee



Geht das? Wenn ja, wie?
--
Greetz, ai`tee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.06.2003, 14:40 Uhr
virtual
Sexiest Bit alive
(Operator)



C++:
#include <cstdlib>
#include <iostream>

int main()
{
    std::cout<<"Der Wert der Umgebungsvariablen PATH ist \""<<std::getenv("PATH")<<"\"."<<std::endl;
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.06.2003, 09:51 Uhr
ai-tee



hmm ... also ich hab das irgendwie anders:


C++:
int main()
{
    char *progPath = getenv ("UmgVar"); // UmgVar enthält den Pfad zu einem Programm
    
    if (NULL != *progPath)
    {
        system ("*progPath datei.ps"); // datei.ps ist ein Wert der mitgegeben wird um das Programm auszuführen (klappt aber auch nicht)
    }
};



Ich habe aber weder cstdlib included noch benutze ich std. Ich verstehe leider immer noch nicht, wieso ihr das alle benutzt, ist das nicht irgendwo in einer header Datei schon mit drin? afx.h?

Desweiteren will er das nicht ausführen. Ich bekomme in der Konsole die msg:

Der Befehl "*progPath" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Jemand ne Idee?
Ich schätze mal das Problem liegt am Pointer oder?
--
Greetz, ai`tee

Dieser Post wurde am 06.06.2003 um 09:52 Uhr von ai-tee editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.06.2003, 11:50 Uhr
ao

(Operator)



Zitat:
ai-tee postete

C++:
system ("*progPath datei.ps"); // datei.ps ist ein Wert der mitgegeben wird um das Programm auszuführen (klappt aber auch nicht)


Der Befehl "*progPath" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Ich schätze mal das Problem liegt am Pointer oder?


Die Funktion system () versucht, den String, der ihr übergeben wird, auszuführen, als ob du es direkt am DOS-Prompt eingetippt hättest. *progPath ist natürlich kein gültiges Kommando.

Du hast den Befehlsstring falsch zusammengebaut, "*progPath ..." ist kein Zugriff auf den Pointer, sondern einfach eine Zeichenkette, die mit der gleichnamigen Zeigervariablen nichts zu tun hat.

Du kannst strcpy, strcat oder Ähnliches verwenden (auch CString, wenn MFC erlaubt ist), um die Befehlszeile im Speicher zusammenzubauen. Erst danach die komplette Zeile an system () übergeben. Der Inhalt müßte dann irgendwas der Art "bla.exe datei.ps" sein.

Eine weitere gute Idee ist, die Befehlszeile vorher mit printf () auszugeben und nicht blind an system () weiterzureichen.

Eine noch bessere Idee ist, einen Debugger zu benutzen.

Zu cstdlib oder std: Alles, was du hier gepostet hast, ist C, nicht C++. Ich verstehe darum nicht, wozu du cstdlib oder std brauchen solltest.

Du bist doch der, der sein Programm als Windows-Service anmelden will, oder? Es könnte sinnvoll sein, vorher noch ein paar Grundlagenkenntnisse über C zu erwerben; deine Fragen zeigen an, daß du hier noch ziemlich am Anfang stehst.

Gruß

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.06.2003, 12:13 Uhr
ai-tee



Du hast recht, um genau zu sein ist dies mein erstes C/C++ Programm ... ich stehe also fast exact am Anfang

Und für C Kenntnisse habe ich ehrlich gesagt keine Zeit ... Naja und da ich ja nun schon so gut wie fertig bin ... ists wohl auch (für dieses Projekt) etwas zu spät, aber C/C++ macht mir sehr viel Spass und ich werde es auch privat weiter machen, dann werd ich mir die Kenntnisse schon noch aneignen. Danke

Was cstdlib und std angeht, ich habe sie ja nicht benutzt oder includiert, stand nur im Codeschnipsel einen Post weiter oben.

Das Problem gelöst habe ich jetzt in dem ich einfach den + Operator überladen habe (ich hoffe da sagt man so) indem ich jeden Stringabschnitt (CString) vorangestellt habe (Codeschnipsel im C++/Dos Thread von mir).

Thx für Deinen ausführlichen Post
--
Greetz, ai`tee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: