danke wurstbrot ist schon nicht mehr nötig schau ich mir aber trotzdem mal an
habs jetzt irgendwie geschafft
auch wenn die MsgBox die Zahl nicht angezeigt hat, egal ob str.size oder strlen
hat es trotzdem mit dem weiterverarbeiten geklappt
durch ganz viel rumkonvertiererei gehts jetzt^^
allerdings hat der rest eine frage aufgeworfen:
PHP Code:
LPCTSTR Lstr2 = (LPCTSTR)str.c_str();
LPTSTR strExtra = L"\\ressources\\ressource.exe";
_tcscat_s((LPTSTR)_T(str2),MAX_PATH,strExtra);
gibt einen Fehler beim Debug aus
ALso kompilieren geht, aber es gibt ein Problem mit dem Speicher.
Das Programm funktioniert zwar trotzdem, aber die Fehlermeldung nervt und es ist ja auch nicht gerade gut, wenn auf nicht zugelassenem Speicher versucht wird zu schreiben, auch wenn nix passiert wegen Zugriffsverweigerung^^
in str ist der Pfad der Datei
diesem möchte ich nun ein unterverzeichnis mit _tcscat_s hinzufügen
so obwohl der Pfad nicht MAX_PATH übersteigt, gibts nen Fehler wegen Speicher.
Ohne _s gibts nen Fehler wegen Overflow und mit gibts nen Fehler wegen Zugriffsverweigerung.
Komischerweise gehts danach trotzdem ohne Probleme mit dem Programm weiter und es kopiert sogar eine Datei aus dem Unterverzeichnis raus O.o also irgendwie verwirrt mich das.
Gibt es eigentlich eine bessere Variante das aktuelle Verzeichnis herauszufinden, ohne den Namen der Datei mit drin zu haben?
Deswegen kams nämlich zu diesem ganzen Müll.
Weil ich mit der Funktion GetModuleFileName den Namen mit drin hab, musste ich ihn ausfiltern (gibts dafür ne Funktion für TCHAR oder CString?) ich habe nämlich keine gefunden.
Nur die für std::string
Also wandelte ich in string um, zog den Dateinamen ab konvertierte zurück und nun wollte ich eben das unterverzeichnis anhängen was auch geht und später im Programm sogar verwendet werden kann, nur gibts zu dem Zeitpunkt eben einen Speichefehler :facepalm:
Ich weiß es ist nicht das eleganteste, aber ich habe eben nicht das richtige gefunden.
Ich suche:
Eine Funktion die das aktuelle Verzeichnis findet und einen TCHAR oder LPCTSTR oder LPSTR oder CString zurückgibt.
Oder wenn ich eben doch die nehmen muss, die den Namen der Datei mit enthält,
eine Funktion mit der ich einen String in Teile aufteilen kann, um den Namen da weg zu kriegen. Der Rückgabewert sollte auch einer der genannten sein.
oder wenn man nicht direkt mit einem Substring wie bei strstr arbeiten kann dann zumindest eine Funktion die wie string.substr arbeitet, wo ich dann eben das Ergebnis von GetLength nutzen kann, um an der richtigen Stelle abzuschneiden.
Denn es nervt echt, zig mal hin und her konvertieren zu müssen und am Ende auch noch einen Speicherfehler zu haben -.-