Alle Nicht-Belegten Laufwerke auflisten
-
Hi,
ich möchte unter Windows alle nicht belegten Laufwerke auflisten.
Ich arbeite mit einer wxWidgets Combobox (cb_laufwerk).this->cb_laufwerk->Clear(); DWORD drives = GetLogicalDrives(); for (std::list<char>::iterator ii=this->AlleLaufwerke.begin();ii != this->AlleLaufwerke.end();++ii) { if (drives & (DWORD)*ii) { } else { this->cb_laufwerk->Append(wxString(*ii) + ":"); } }AlleLaufwerke ist dabei eine Char-List A - Z.
Ich bekomme aber nur "A:", "B:" und "C:" ausgegeben.
Wo liegt mein Fehler?
Gruß
-
Hi,
hab den Fehler grad doch noch gefunden, hab mir die Doku zur Rückgabe von GetLogicalDrives() nicht richtig durchgelesen

Hier der Richtige Code:
this->cb_laufwerk->Clear(); DWORD drives = GetLogicalDrives(); DWORD j = 1; for (std::list<char>::iterator ii=this->AlleLaufwerke.begin();ii != this->AlleLaufwerke.end();++ii) { if (drives & j) { } else { this->cb_laufwerk->Append(wxString(*ii) + ":"); } j *= 2; }Gruß
-
Standard-C++ kennt keine Laufwerke, damit warst du schonmal im falschen Forum. Nächstemal bitte erst die mit wichtig gekennzeichneten Threads durchlesen und dann posten...
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ (auch C++0x) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Nur eine Randfrage: Ist es denn wirklich nötig, die Laufwerksbuchstaben in einer list<> vorrätig zu halten? Ich würde eher direkt über den Zeichenbereich iterieren:
char c;int j; for( c='A',j=1 ; c<='Z' ; ++c,j<<=1 ) { if (!(drives & j)) { this->cb_laufwerk->Append(wxString(c) + ":"); } }