C
kernel64 schrieb:
Hab das mit den Datentypen so gelöst:
typedef char CSTRG;
typedef char* PCSTRG;
typedef const char* CPCSTRG;
Das würd ich besser so lösen:
#ifndef UNICODE
typedef char CSTRG;
typedef char* PCSTRG;
typedef const char* CPCSTRG;
#else
typedef wchar_t CSTRG;
typedef wchar_t* PCSTRG;
typedef const wchar_t* CPCSTRG;
#endif // !UNICODE
Denn sonst hast Du ja meine schöne Zeichensatzunabhängigkeit ruiniert .
kernel64 schrieb:
Jetzt bekomme ich Compiler Fehler wegen dem SIGN und STRING:
error C3861: "SIGN": Bezeichner wurde nicht gefunden.
error C3861: "STRING": Bezeichner wurde nicht gefunden.
Jo der Einfachheit kannste das alles durch das Makro TEXT() ersetzen.
kernel64 schrieb:
[Edit] Welche 3 Parameter werden der Funktion ScanFoldersForFiles() übergeben?
Beispielaufruf:
bool __cdecl HandleFoundFiles(CPCSTRG pFilePath, void* pData)
{
// In pFilePath steht der Pfad zur gerade gefundenen Datei...
static cString strInfoMsg(STRING("\n\n Möchten Sie fortfahren ?"));
if(MessageBox(NULL, (cString(pFilePath) + strInfoMsg).c_str(), STRING("Aktuelle Datei:"), MB_YESNO | MB_ICONINFORMATION) == IDYES)
return (true);
else
return (false);
/*
Hinweis: Der Return-Wert bestimmt das weitere Vorgehen... . Wenn Du hier
false zurückgibst, beendest du damit den Suchvorgang abrupt. Das zurückgeben von true sorgt logischerweise für das Fortsetzen des Suchvorgangs.
*/
}
ScanFoldersForFiles(STRING("C:\\*"), HandleFoundFiles, NULL);
// Immer wenn er jetzt etwas findet, ruft er die Funktion 'HandleFoundFiles' auf.
Da der Dir aber nun die ganze Festplatte *C:* nach Dateien durchsucht, ist es ratsam den ganzen Kram in einen Thread auszulagern und beim letzten Parameter (hier: NULL) beispielsweise ein Zeiger auf eine Struktur oder ein Flag (bool) zu übergeben, um diesen Thread dann bei Bedarf (beispielsweise bei einer bestimmten Datei oder einer gewissen Anzahl) abbrechen zu können (_endthreadex()), also eine Art Kontrollvariable für das Laufzeitverhalten des Threads .
Hoffe das ist verständlich .
PS @ All: Da gibts in der FAQ ja schon einen Eintrag zu, dieser wär vllt ne (gute ?! ) Ergänzung, oder ?