AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[C++] Char-Array in LPTSTR

Ein Thema von Aurelius · begonnen am 8. Jul 2008 · letzter Beitrag vom 9. Jul 2008
Antwort Antwort
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#1

[C++] Char-Array in LPTSTR

  Alt 8. Jul 2008, 11:18
Hi DPler

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
Jonas
  Mit Zitat antworten Zitat
new32

Registriert seit: 10. Mai 2005
160 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: [C++] Char-Array in LPTSTR

  Alt 8. Jul 2008, 19:47
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
~?&/%§$§%\&?~
8)
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#3

Re: [C++] Char-Array in LPTSTR

  Alt 9. Jul 2008, 08:58
Danke. ich werde es mal testen
Jonas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz