Pfad umwandeln?
-
Da kann man manchmal echt nur mit dem Kopf schütteln...
Benutz weiterhin Deine Funktion, aber akzeptiere bitte die Tatsache, das sie unnütz ist, wenn man die Pfade gleich richtig angibt.
-
-
Hi!
Sorry, Du hast vollkommen recht

Ich habe heute morgen gemerkt.
Ich habe die alte Schleife durch dieser ersetzt:
wchar_t szSourcePath[MAX_PATH] = {0}; char szPath[MAX_PATH] = {0}; //Code .... strcat(szPath, "*.zip\0"); for(int j = 0; j < MAX_PATH; ++j) { if(szPath[j] != '\0') { szSourcePath[j] = (unsigned short)szPath[j]; } else { szSourcePath[j] = '\0'; break; } }
-
-
leonReif schrieb:
dEUs schrieb:
Gut erklärt

Ironisch gemeint?
-
Was hälst du eigentlich davon:
wchar_t szSourcePath[MAX_PATH] = ""; char szPath[MAX_PATH] = ""; //Code .... strcat(szPath, "*.zip"); strcpy(szSourcePath,szPath, strlen(szPath));Die Schleife ist nämlich sinnlos.
-
dEUs schrieb:
leonReif schrieb:
dEUs schrieb:
Gut erklärt

Ironisch gemeint?
Ironisch gemeint?
Nein auf gar keinen Fall. Ich bin direkt. Wenn mir etwas nicht passt, dann sage ich es ...

-
Hi!
Mit
strcpyfunktioniert nicht, da die Funktion
strncpynur zwei Parameter aufnimmt. Aber es gibt die Funktion
char *strncpy( char *strDest, const char *strSource, size_t count )Aber ich bekomme folgende Fehlermeldung bei kompilieren:
error C2664: 'strncpy' : cannot convert parameter 1 from 'unsigned short [260]' to 'char *'Ich habe vorher nach eine Funktion gesucht, die man eine unsigned short Array in ein char Array oder umgekehrt konvertieren kann. Deshalb habe ich die Schleife geschreiben!
-
dann nimm strcpy und lass den letzten parameter weg. Und mach vor die ersten beiden ein (char*)
-
Hi!
Ich habe es gerade probiert.
Das Ergebnis voher mit der Schleife:
C:\temp\10.zip
Das Ergebnis nachher mit strcpy:
strcpy((char*)szSourcePath, (char*)szPath);C\ep\.i
Anscheind gehen Informationen verloren!
-
strcpy frißt Zeichen auf?
Auch nicht schlecht... da Du sicherlich der erste Entdecker dieses Verhaltens bist, darfst Du diesem Phänomen einen Namen geben.
...könnte aber auch sein das Du da schlichtweg überhaupt nicht weißt, was Du da tust und daher einen jenes Verhalten hervorrufende Fehler selber reingebaut hast.
Ist alles möglich...

-
Ich denke, du brauchst eher sowas wie WideCharToMultiByte
-
Hallo flenders,
ich danke Dir

Es funktioniert sehr gut mit
WideCharToMultiByteMultiByteToWideChar( CP_ACP, 0, szPath, strlen(szPath)+1, szSourcePath, sizeof(szSourcePath)/sizeof(szSourcePath[0]));Viele Grüße,
leon

-
leonReif schrieb:
Es funktioniert sehr gut mit [cpp]WideCharToMultiByte[/cpp]
MultiByteToWideChar( CP_ACP, 0, szPath, ...Der war gut

-
Hepi schrieb:
... da Du sicherlich der erste Entdecker dieses Verhaltens bist, darfst Du diesem Phänomen einen Namen geben.
hihi.. ich lach mich immer wieder futsch ab solchen trockenen kommentaren!!
-
Sorry, war auch mit mein Fehler - er braucht MultiByteToWideChar (hatte mir den Code nicht genau genug angesehen)