![]() |
[C++] Char-Array in LPTSTR
Hi DPler :hi:
Ich muss für die Uni ein Konsolen-Programm schreiben, dass alle Dateien und Ordner in einem Baum anzeigt (ähnlich dem Befehl "tree" im cmd). Vom Funktionsaufbau alles kein Problem, allerdings hatten wir bis jetzt nur Char-Arrays gearbeitet, und ich hab keine Ahnung wie ich das in den geforderten LPTSR umwandeln kann. Hier mal mein Code (ich weiß, da fehlen noch Sachen, aber sobald ioch das Problem gelöst hab ist der Rest kein Problem).
Code:
Ich hoffe ihr könnt mir helfen :)
void OrdnerInhalt(char * p_csOrdner)
{ WIN32_FIND_DATA FindFileData; HANDLE hSuche; LPTSTR sOrdner;s sOrdner = (LPTSTR) malloc (MAX_PATH); hSuche = FindFirstFile(sOrdner, & FindFileData); while( FindNextFile(hSuche, & FindFileData) != 0) { printf(" %s \n", FindFileData.cFileName); } FindClose(hSuche); free(sOrdner); } |
Re: [C++] Char-Array in LPTSTR
LPTSTR ist wenn du nich mit unicode-funktionen arbeitest das gleiche wie ein LPSTR sonst ein LPWSTR
Code:
und ein LPSTR ist ein einfacher Zeiger auch ein "char"
#ifdef UNICODE
typedef LPWSTR LPTSTR; #else typedef LPSTR LPTSTR; #endif also
Code:
.
typedef char *LPSTR;
Der Unterschied zur Unicodeversion ist, der Typ eines Zeichens (kein char sondern ein wchar_t)
Code:
das heißt, wenn du nicht mit unicodefunktionen arbeitest, musst du nichts ändern.
typedef wchar_t LPWSTR;
sonst umwandeln (Funktion nicht getestet):
Code:
bei der Speicherbesorgung drauf achten, dass LPTSTR keine feste Länge hat.
void a2u(LPWSTR u, LPSTR a){
int i; for(i=0;a[i];i++)u[i]=a[i]; u[i]=0; return; } also:
Code:
dann noch das "s" löschen
sOrdner = (LPTSTR) malloc (MAX_PATH*sizeof(LPTSTR));
Code:
und es sollte laufen
LPTSTR sOrdner;/*s*/
|
Re: [C++] Char-Array in LPTSTR
Danke. ich werde es mal testen :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz