Forum: Programmieren allgemein
by SirThornberry,
30. Nov 2007
ich habe meine extract_file_path funktion nochmal angeschaut und sie funktioniert richtig mit dem +1
Zudem ist
for (i = strlen(path) - 1; (i >= 0) && (path != '\\'); i--);
path = 0;
das gleiche wie
for (i = strlen(path) - 1; (i >= 0) && (path != '\\'); i--)
Forum: Programmieren allgemein
by SirThornberry,
30. Nov 2007
ok, dann muss das "+1" hinter der schleife aber nur weg (aber komisch das es bei meinen Tests trotzdem so funktioniert)
Forum: Programmieren allgemein
by SirThornberry,
30. Nov 2007
bei mir hat mein source so funktioniert wie ich ihn gepostet hab. Es genügt die abschließende 0 nur ans Ende zu hängen (man muss ja nicht alles mit 0 überschreiben)
@DeddyH: Das Semikolon gehört dort hinn. Denn ich zähle nur i runter und erst wenn ich die richtige position erreicht habe wird die abschließende 0 gesetzt. Die Schleife ist also richtig und funktioniert auch.
Forum: Programmieren allgemein
by SirThornberry,
30. Nov 2007
ganz wichtig:
return songpfad;
das solltest du unterlassen. Das ist wie in Delphi ein NoGo.
Adressen auf lokale Variablen gibt man nicht zurück. Vielleicht lag da ja dein Fehler.
Ahh, jetzt verstehe ich deinen Ausgangsquelltext. Ja, man kann das Array doch abziehen. Verständlicher ist es wenn du anstelle des Arrays dort die Adresse des Arrays nimmst (&array)
Mit deinen Funktionen...
Forum: Programmieren allgemein
by SirThornberry,
30. Nov 2007
um das ganze mal auf c-ebene fertig zu stellen:
extract_file_path(programPfad);
strcat(programPfad, "Songs\\");
Forum: Programmieren allgemein
by SirThornberry,
30. Nov 2007
ich hab dir mal fix ExtractFilePath in c geschrieben:
void extract_file_path(char* path)
{
int i;
for (i = strlen(path) - 1; (i >= 0) && (path != '\\'); i--);
path = 0;
}
Forum: Programmieren allgemein
by SirThornberry,
30. Nov 2007
uj, was machst du denn hier?
letzteBackslashPos = (int)(pLetzteBackslashPos - programPfad + 1);
programPfad ist doch ein Array und plötzlich rechnest du damit?
Zudem solltest du die Rückgabe von GetModuleFileNameA auswerten.
Dann vom letzten zeischen rückwärts bis auf 0 oder den ersten Backslash gehen