C++ Wo ist der Fehler?

WieselNo1

Ensign
Registriert
März 2008
Beiträge
172
grüsse,

ich versuch mir gerade ein prog zu basteln was über everst die GPU temp überwacht(Everest speichert den Wert in der Reg und ich will ihn auslesen).

Hab bissl im Netz geschaut und folgenden Code zusammengestellt und kopiert aber ich bekomm nen Compilerfehler wo ich mir denke das das garnet sein kann:

Code:
#include <windows.h>
#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
	unsigned char temp[99] = {""};	
	unsigned long size = sizeof(temp);
	HKEY hKey;
	
	RegOpenKeyEx (HKEY_CURRENT_USER,"Software\\Lavalys\\EVEREST\\SensorValues",NULL,KEY_READ,&hKey);
	RegQueryValueEx (hKey, "Value.TGPU1DIOM", NULL, NULL, temp, &size);
	RegCloseKey(hKey);
	printf("Value: %s (Size: %lu)\n", temp, size);
	return 0;
}

und folgendes sind die Fehlermeldungen:

1>c:\users\wieselno1\documents\visual studio 2008\projects\test\test\registry.cpp(13) : error C2664: 'RegOpenKeyExW': Konvertierung des Parameters 2 von 'const char [38]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\wieselno1\documents\visual studio 2008\projects\test\test\registry.cpp(14) : error C2664: 'RegQueryValueExW': Konvertierung des Parameters 2 von 'const char [16]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.

Zeile 13 und 14 sind die beiden Zeilen die auf die Reg zugreifen.

Leider find ich den Fehler net, hab bissl in der MSDN-Library gesucht aber nicht gefunden wo mein deklarationsfehler liegt.

Hoffe ihr könnt mir helfen.

cya Wiesel
 
Zuletzt bearbeitet:
Du kompilierst in Unicode, benutzt aber nicht das L-Makro, um die String-Literale in Unicode zu kodieren.

Entweder stellst Du auf Multi-Byte um (Projekt-Optionen) oder Du benutzt das L-Makro (statt "string" schreibt man dann L"string" )
 
grüsse,

mein Retter.
Ich danke vielmals.

cya Wiesel
 
Hi, hab auch mal ne kurze frage:

Eins noch vorweg...bin blutiger anfänger in sachen programmieren:D

Also ich möchte eine Funktion schreiben, die bei Eingabe per tastatur z.B. einen Buchstaben eingeben (egal ob groß oder kleinbuchstabe) mir den Großbuchstaben zurückgibt.
Ich weiß dass ich es glaub ich irgendwie über die ASCII Tabelle machen muss da meine Funktion so aussehen soll:

char blabla (char blabla)

Ich mein ich weiß dass ich z.B. mit int a = '0' die 48 bekomme...aber irgendwie wills nicht so!

Hoffe ihr könnt mir weiterhelfen und seid nachsichtig!:-)

Mfg
Rohirrim
 
So eine Funktion kann man sich auch ganz einfach selber schreiben.
Mit dem ASCII-Table bist du schon auf dem richtigem Weg, jetzt musst du nur noch den Zusammenhang zwischen einem kleinen und einem großen Buchstaben erkennen.
Code:
65 = A
66 = B
67 = C

97 = a
98 = b
99 = c

a - A = 97 - 65 = 32
b - B = 98 - 66 = 32
c - C = 99 - 67 = 32
Daraus kann man schließen, dass ein Kleinbuchstabe - 32 den Großbuchstaben ergeben muss.
Jetzt musst du das nur noch in eine Funktion packen und du hast deine eigene toupper Funktion geschrieben!

Gruß
BlackMark
 
BlackMark schrieb:
Daraus kann man schließen, dass ein Kleinbuchstabe - 32 den Großbuchstaben ergeben muss.
Jetzt musst du das nur noch in eine Funktion packen und du hast deine eigene toupper Funktion geschrieben!
und aus einem A wird ein !. ;) heißt: abfrage nicht vergessen!
 
Jaja, schon klar, wenn der Eingabewert eine Zahl bzw. einfach ein anderes Zeichen ist, dann sollte man das schon prüfen. Dachte, das würde man sich denken können...

Gruß
BlackMark
 
dank euch schonmal!

Das mit der gleichen Differenz zwischen Groß-und Kleinbuchstaben ist mir auch aufgefallen.
Mir fällt es nur ungemein schwer das in compiler-verständlichen code umzusetzen.
Hab da whr. noch viel zu wenig Übung drin!

Mfg
Rohirrim
 
Du kannst ja einfach mal was zusammencoden, wenn du nicht weiter kommst, einfach hier nachfragen.

Gruß
BlackMark
 
Zurück
Oben