Datentypen und Hardware auslesen // Einsteigerfragen
-
Hallo,
ich komme eigentlich aus der PHP / Perl - Ecke und finde mich in C++ nicht wirklich zurecht.
Ich möchte die Hardware zu einem Laufwerksbuchstaben auslesen:
Das ist mit Perl ziemlich umständlich. Da mir allerdings gesagt wurde, man könne mit C++ viel näher an der Hardware programmieren, versuche ich gerade C++ zu lernen.
Ich habe in diesem Forum irgendwo einen Beitrag gefunden, womit man den Typ der Sound und Grafikkarte auslesen kann.
Ich versuche eigentlich diese Infos zu kriegen:
Laufwerk C:\ basiert auf IBM DTLA-307030 und fällt unter "FIXED DRIVE".Bisher habe ich 2 von 3 Daten auslesen können:
void CLogoInstallerDlg::GetDrives() { CString strDrive="A:\\"; DWORD dwDrives = GetLogicalDrives(); char szDrive[8] = "A:\\"; for(int i=0; i<26; i++) { if(dwDrives) { szDrive[0] = i + 'A'; if(GetDriveType(szDrive) == DRIVE_REMOVABLE) { MessageBox (szDrive); } TCHAR szTemp[100]; GetLogicalDriveStrings(100, szTemp); } } }
Dies gibt mir alle Laufwerksbuchstaben zurück, welche Wecheseldatenträger sind.
Ich kann jetzt aus der Registry die Hardware (ziemlich umständlich, aber es geht) auslesen.
Oder kennt jemand eine einfache Möglichkeit an diese Info zu kommen?
Kann man das vieleicht irgendwie aus der WinAPI auslesen?Mein viel größeres Problem sind in C++ allerdings die Datentypen:
Die Funktion oben gibt MessageBoxen aus.
Eigentlicht sollte sie return [ARRAY MIT DEN BUCHSTABEN] zurückgeben.
Damit dies möglich ist, muss da ja dann nicht "void [Funktionsname]" sondern irgend etwas anderes stehen, Funktionen mit void dürfen (offenbar) nichts zurückgeben.
Allerdings habe ich noch keine Erklärung im Netz zu den ganzen Datentypen gefunden.
In Perl kenne ich zwar den Unterschied zwischen int, float, double, long, etc...
aber:
DWORD ?
char == CString == ein String?
Wenn ich in der Registry arbeite habe ich einen HKey... ?Ich werde damit schlicht wahnsinnig.
Ausserdem: Wie kann ich in C++ mit Zeichen arbeiten?
z.B. Wenn ich den String (Keine Ahnung wo der Unterschied zwischen Char, CString und DWord ist) "Hallo, dies ist ein Test!" habe, wie kann ich dann jedes Element beim Leerzeichen trennen und in ein Array schreiben?
Also dass dann rauskommt:
Array[0] = "Hallo,";
Array[1] = "dies";
Array[2] = "ist";
Array[3] = "ein";
Array[4] = "Test!";In perl macht man hier einfach "$array = explode(" ", $meinText);", aber so einfach ist C++ offenbar nicht.
Danke für die Hilfe.
mfg
trequ