Ich habe mir eine Anwendung geschrieben, die das Arbeitsverzeichnis ermittelt(Code siehe unten) und darin benötigte Dateien sucht.
Wenn ich das Programm im Explorer mit einen Doppelklick starte, funktioniert es.
Wenn ich eine Verknüpfung unter Programme im Startorder anlege und so das Programm starte funktioniert es nicht.
Ich muß in den Eigenschaften der Verknüpfung unter "Ausführen in:" das Arbeitsverzeichnis nochmals angeben.
Warum???
Headerdatei:
#include
Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge
Hallo anul,
wenn Du Dein Programm per Doppelklick aufrufst befindest Du Dich im Verzeichnis in dem das Programm liegt. Arbeitsverzeichnis ist (wenn nicht anders festgelegt) das Verzeichnis aus dem das Programm aufgerufen wird. Rufst Du das Programm aus dem Startmenü auf, ist das Arbeitsverzeichnis gleich dem Verzeichnis des Startmenüs.
Ich habe mir eine Anwendung geschrieben, die das Arbeitsverzeichnis ermittelt(Code siehe unten) und darin benötigte Dateien sucht
Ich verstehe das so, dass Du Dateien suchst die im selben Verzeichnis liegen wie das Programm. Das Problem würde also nicht auftreten, wenn Du statt dem Arbeitsverzeichnis den Programmpfad ermittelst. AFAIK wird der+Programmname (bei C) als erster in der Liste der Kommandozeilenparmeter übergeben. Bei Visual C++ gibt es vermutlich noch einen einfacheren Weg den zu ermitteln.
CU Borlander