Hallo
Warum gibt dieser Code immer 0 zurück und nicht die korrekte MHz Zahl?
Ich bin langsam am verzweifel, hab schon etwa 100 verschieden Varianten probiert und es hat einfach nichts geklappt.
Manchmal waren es auch einfach irgendwelche kryptischen Zeichen :-(
Hab etwa 4 verschieden Foren gefunden, wo diese Problem mal diskutiert wurde und es konnte immer gelöst werden.. nur bei mir geht das nicht :-(
Ihr seid meine letzte Hoffnung!
std::string CHardwareInfo::GetCpuSpeed(void)
{
HKEY hKey;
std::string strString;
std::stringstream strStream;
DWORD dwValue = 0;
DWORD dwSize = sizeof(dwValue);
DWORD dwType;
if( ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"Hardware\\\\Description\\\\System\\\\CentralProcessor\\\\0",
0,
KEY_QUERY_VALUE,
&hKey ))
{
return "Unknown";
}
if( ERROR_SUCCESS != RegQueryValueEx (hKey, "~MHz",
NULL, &dwType,
(LPBYTE)dwValue, &dwSize))
{
MessageBox(NULL,"RegQueryValueEx MHz: Failed","ERROR", MB_OK);
return "Unknown";
}
float fValue = (float)dwValue;
strStream strStream >> strString;
return strString;
}
Schon mal vielen Dank an alle, die sich das etwas genauer anschauen!
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Hey du glaubst nicht wie dankbar ich dir bin... :)
Ich hab den ganzen verschi**enen Tag an dem Teil herumgebastelt und wirklich alle erdenklichen Möglichkeiten ausprobiert.
Und alles liegt an so einem kleinen doofen Zeichen (&).
Ich verwende übrigens Visual Studio 6 (naja nicht gerade aktuell).
Wenn du noch gerade etwas Zeit hättes, würde es mich freuen, wenn du noch etwas genauer erklären könntes, wie du das mit dem Buffer gemeint hast.
Das Gebastel mit der flaot variable ist wirklich nicht nötig, man kann auch direkt dword verwenen.
strStream strStream >> strString;
Das war mehr so ein Verzweiflungsversuch.
Ist es denn noch anders irgendwie möglich diesen DWORD in einen std string zu konvertieren? Hab das so in einem Forum gefunden...
Jedenfalls noch mal vielen Dank!!!