Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

1

23.05.2013, 20:17

GetModuleFileName gibt für mich nicht eindeutigen Pfad zurück

Hallo.
Folgendes Problem: Ich möchte den Pfad meines Programms ermitteln. Ich nutze dazu die Funktion GetModuleFileName folgendermaßen:

C-/C++-Quelltext

1
2
char exepfad[MAX_PATH];
int rück = GetModuleFileName(NULL, exepfad, MAX_PATH);

Der Rückgabewert ist ungleich "0". Ich bekomme folgende Pfadangabe zurück:

D:\Tools\Editor\.\Debug\Exec.exe

Laut CMD-Funktion "cd" ist der Pfad korrekt. Doch was bedeutet der "." in mitten des Pfades? Der Pfad, welchen ich durch den Explorer bekomme, sieht folgendermaßen aus:

D:\Tools\Editor\Debug\Exec.exe

Dieser Pfad ist ebenfalls korrekt. In der MSDN konnte ich dazu nichts finden.
Eine weitere Frage für mich ist, wie ich diesen Punkt unterbinden kann.
Danke im Voraus.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

2

23.05.2013, 20:31

Der Punkt bedeutet "dieser Ordner" und somit sind die beiden Pfade identisch.

D:\Tools\Editor\.\Debug = In Ordner D:\Tools\Editor, in diesem Ordner (also Editor), im Unterordner Debug.

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

3

23.05.2013, 20:50

Damit wäre die erste Frage beantwortet, danke! Zur Sicherheit Frage zwei nochmal: Wie kann ich den Punkt verhindern?

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

4

23.05.2013, 20:51

Gar nicht. Die Pfade sind eindeutig, daher ist da gar keine weitere Tat nötig.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

5

23.05.2013, 21:46

Bei einem Vergleich zweier Strings wird aber nicht TRUE herauskommen, wenn ich Pfad eins und Pfad zwei vergleiche. Das ist mein eigentliches Ziel.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

6

23.05.2013, 21:52

Pfade sind eben keine Strings.

Also müsstest du dir selber was basteln. Es gibt zwar die Funktion PathCanonicalize, aber so wie ich das im Kopf habe (kann mich da aber auch irren. Ist schon ewig her) ist die Funktion ziemlich kaputt.

Darf man mal fragen, warum du überhaupt 2 Pfade miteinander vergleichen willst?

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

7

23.05.2013, 22:01

Das ist ungewöhnlich, dass da ein Punkt drin vorkommt. Probier doch mal die Unicode Variante aus. Die Ansivariante sollte man sowieso nicht mehr benutzen. Allerdings sollte man zwei Pfade auch fast nie vergleichen müssen. Erzähl mal, warum du das machen musst.
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

8

24.05.2013, 23:32

Wenn ich eine Datei in meinen Editor importiere, möchte ich überprüfen, ob sie im Arbeitsverzeichnis des Editors liegt. Deswegen der Vergleich ;)

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Werbeanzeige