Näheres dazu findest du in meiner ViKa 
*gg* 
Richtig Stimmung gibt es erst, wenn du mit Zeigern arbeitest
und dann statt eines Zeigers, einen Fehlercode als Zeiger
verwendest
))
klingt lusitg 
sagen wir mal fast funktioniert
)
*gg*
btw: ich hab das Problem teilweise lösen können, hab einfach
values[1] = reinterpret_cast(value5);
RegSetValueEx(openkeys[1], getvalues[1], NULL, REG_SZ,
values[1] , NULL);
aus der NULL am ende folgendes gemacht:
sizeof( get values[1])) ???
(die zahl dann für den jeweiligen wert)
das „get“ hast du aber reingemacht 
naja mal kurz zur allgemeinen auflkärung:
getvalues[x] und values[x] sind unterschiedliche Arrays 
im ersten ist der Name des Wertes drin und im zweiten kommt dann der wert des wertes rein… 
(wie nennt man eigentlich diese dinger in den Registryschlüssel, also die zeichenfolgen und Dwords etc.? gibts dafür ne allgemeine bezeichnung, weil ich nenns immer „werte“ aber die werte haben ja auch nen wert (also das was dann drin steht) und das is irgendwie verwirrend
)
Der letze Parameter dient dazu Pufferüberläufe zu verhindern.
sizeof() liefert dir die anzahl Bytes, welche im Speicher
reserviert werden und schon zur Compilierzeit bekannt sind.
values[1] belegt 4 Bytes, da du aber die Deklaration von
values[] nicht angiebst kann ich dazu nicht viel mehr
sagen…
naj drum hab ich ja immer die zeile
values[1] = reinterpret_cast(value5);
mirgeposted, da dort der wert ja in „unsigned char *“ umgewandelt wird, woran man erkennen kann dass das Array ein „unsigned char *“ ist 
Du müsstest strlen(values[1]) verwenden, welches dan die
Anzahl Bytes welche der String tatsächlich belegt liefert. Da
strlen() das Nullzeichen am Ende nicht mitzählt musst du noch
+1 anhängen.
die idde hatt ich sogar auch schon
aber ich hatte gestern nicht soviel zeit und hab erstmal das mit dem sizeof ausprobiert 
werd nu aber mal mit dem versuchen, wird schon klappen 
MfG Peter(TOO)
Mfg Dead_Masters ^.^