Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [C++] Char-Array in LPTSTR (https://www.delphipraxis.net/116882-%5Bc-%5D-char-array-lptstr.html)

Aurelius 8. Jul 2008 10:18


[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:
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);
}
Ich hoffe ihr könnt mir helfen :)

new32 8. Jul 2008 18:47

Re: [C++] Char-Array in LPTSTR
 
LPTSTR ist wenn du nich mit unicode-funktionen arbeitest das gleiche wie ein LPSTR sonst ein LPWSTR

Code:
#ifdef UNICODE
typedef LPWSTR LPTSTR;
#else
typedef LPSTR LPTSTR;
#endif
und ein LPSTR ist ein einfacher Zeiger auch ein "char"

also
Code:
typedef char *LPSTR;
.

Der Unterschied zur Unicodeversion ist, der Typ eines Zeichens (kein char sondern ein wchar_t)
Code:
typedef wchar_t LPWSTR;
das heißt, wenn du nicht mit unicodefunktionen arbeitest, musst du nichts ändern.

sonst umwandeln (Funktion nicht getestet):

Code:
void a2u(LPWSTR u, LPSTR a){
 int i;
 for(i=0;a[i];i++)u[i]=a[i];
 u[i]=0;
 return;
}
bei der Speicherbesorgung drauf achten, dass LPTSTR keine feste Länge hat.
also:
Code:
sOrdner = (LPTSTR) malloc (MAX_PATH*sizeof(LPTSTR));
dann noch das "s" löschen
Code:
LPTSTR sOrdner;/*s*/
und es sollte laufen

Aurelius 9. Jul 2008 07:58

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