Programmpfad extrahieren
-
#include <windows.h> #include <iostream> #include <string> int main() { TCHAR fullPath[MAX_PATH]; GetModuleFileName(NULL, fullPath, MAX_PATH); std::string str(fullPath); std::cout << str.substr(0, str.rfind('\\') + 1) << std::endl; }
-
Danke...das könnte funktioniere...
Ich arbeite mit SDL und musste gerade feststellen, dass es wohl selbst dort keine Plattformunabhängige Methode gibt... Ich find das ziemlich be******en.

Danke euch
-
das hätte in der SDL auch nix zu suchen.
-
Das seh ich anders. SDL bietet ja mit RWops auch Filehandler an. Damit zeigt man ja quasi, das man mit Filesystemen arbeiten kann. Wieso also nicht sowas mit anbietet?
SDL soll ja die Plattform für X-Plattform entwicklung sein. Da gehören nunmal solche sachen mit dazu...
-
Ich hatte schon mal in einem anderen Thread, wo du das gleiche Problem hattest, empfohlen boost::filesystem zu benutzen. Das wäre ein Einzeiler!!! Aber wer nicht hört, muß fühlen!

-
Wie heißt denn die richtige Funktion von boost::filesystem die diese Aufgabe erledigt? Ist das initial_path oder meinst du eine andere?
-
Was ist denn boost? Ich hab davon noch nie gehört...

-
KFlash schrieb:
Was ist denn boost? Ich hab davon noch nie gehört...

google
-
Man soll es nicht glauben, aber um zu erfahren was boost ist, gibt man einfach http://www.boost.org/ in den Browser seiner Wahl ein.

Boost ist eine Ansammlung von C++ Bibliotheken, die unter anderem das Ziel haben in den ISO-Standard einzufliessen. Ein paar dieser Libs haben es sogar in den kommenden Standard geschafft, z.b. smart_ptr, regex u.a.!
boost::filesystem wird zur Zeit für den TR2 (Technical Report 2) beim C++ Committee vorgeschlagen bzw. vom Committee diskuttiert, also gute Chancen das es da auch noch mit rein kommt. Es wäre auch endlich nötige!
Jedenfalls kann man mit boost keinen GAU verursachen, sind schon coole Sachen mit bei.
Diese beiden Funktionen sind interessant bzgl. dieses Topics:
http://www.boost.org/libs/filesystem/doc/operations.htm#initial_path
http://www.boost.org/libs/filesystem/doc/operations.htm#current_path
-
Wenn sie's in den Standard geschafft haben dann vielleicht...
-
Artchi schrieb:
Diese beiden Funktionen sind interessant bzgl. dieses Topics:
http://www.boost.org/libs/filesystem/doc/operations.htm#initial_path
http://www.boost.org/libs/filesystem/doc/operations.htm#current_pathnein, die geben dir den aktuellen arbeitspfad, nicht den pfad in der die exe liegt.
GetModuleFilename fuer windows wurde ja schon mehrfach genannt...
-
Hallo,
In boost gibt es hier noch branch_path