c++ Problem mir GetFullPathName()

12/23/2011 22:50 Zwawo#1
(*mit)
Abend,
also, mein Ziel ist es, dass sich die ausgeführte exe kopiert.
Code:
                        #define BUFSIZE 4000
                        wchar_t  buffer[BUFSIZE]=TEXT("");


			GetFullPathName(L"noname.exe", BUFSIZE, buffer, NULL);
			
		        wcstombs(test, buffer, wcslen(buffer)+1);

			CopyFileA(test, "C:\\noname2.exe", true);
Jedoch holt sich die Funktion GetFullPathName() den Pfad nur mit einem Backslash.
Gibt es eine Lösung oder andere möglichkeit, den Pfad mit "\\" zu holen?
12/24/2011 12:36 Ende!#2
Hm?! Der doppelte Backslash wird doch nur im Code verwendet, damit der Compiler weiß, dass der Backslash, der normalerweise ja eine Escape-Sequenz einleitet, auch tatsächlich als Backslash interpretiert werden soll. Dein 2. Parameter, den du an CopyFileA übergibst, wird vom Compiler im Endeffekt auch zu "C:\noname2.exe" umgewandelt. Oder habe ich deine Frage falsch verstanden?
12/24/2011 12:50 MrSm!th#3
Warum nutzt du nicht GetFullPathNameA anstatt das dann noch per wcstombs zu konvertieren o.ô

Was genau geht denn schief? Wird die Datei nicht kopiert? Was ist test denn für ein Buffer?
12/24/2011 16:35 Zwawo#4
Ok dann eben so :
Code:
                        char  buffer[BUFSIZE];


			GetFullPathNameA("noname.exe", BUFSIZE, buffer, NULL);
			
		    
			CopyFileA(buffer, "C:\\noname.exe", true);
test war ein char.
hatte nicht dran gedacht.
Aufjedenfall wird die exe nicht kopiert.
12/24/2011 18:00 Ende!#5
Wenn du Vista/Win7 benutzt, hast du dank UAC auf das Root-Verzeichnis von C:\ garkeine Schreibrechte, wenn du dein Programm nicht als Administrator startest. Könnte es daran liegen? Wenn das nicht das Problem ist, dann frag' doch mal mit GetLastError den Error-Code ab und befrag' Google bezüglich dessen Bedeutung.
12/24/2011 18:34 MrSm!th#6
^Entweder das oder:

Quote:
test war ein char.
Ich denke mal du meinst ein char Array. Ist es denn groß genug, um den ganzen Pfad zu halten?
12/24/2011 21:26 Zwawo#7
Edit: funktioniert nun, im Projekt Ordner hatte die exe sich i.wie nen falschen Pfad geholt, wenn ich sie nun woanders platziere funktioniert es