C++ 'einfache' Ausgabe eines Wertes

Hallo Leute,

habe ein Problem, bei der Ausgabe eines Wertes in der registry. Da ich ein ziemlicher Neuling in C++ bin wollte ich euch etwas fragen. Ich möchte mir gern den vollständigen Wert von einer REG_SZ, die unter dem Namen „DisplayName“ abrufbar ist, ausgeben lassen.
Habe dafür folgenden Ansatz ( C++ Win32 Konsolenanwendung ) :

#include 
#include 
#include 

int main(int argc, char \*\*argv)
{
[…]
unsigned char name[90]; 
unsigned long size = sizeof(name); 

HKEY hKey;

RegOpenKey(HKEY\_LOCAL\_MACHINE, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\test\\"), &hKey);
// Unterordner “test” soll nur als Beispiel dienen

RegQueryValueEx (hKey, TEXT("DisplayName"), NULL, NULL, (LPBYTE)&name, &size);

RegCloseKey(hKey);

std::ofstream redata("redata.txt"); 
redata 

[…] soll symbolisieren, dass davor und danach jeweils noch etwas kommt, was hierfür aber nicht wichtig sein wird.

Der Wert von „DisplayName“ ist eigentlich „Test Software“, mir wird aber lediglich -\> T [MOD]: 

    -Tags um den Code eingefügt, bitte in Zukunft selbst machen

Hey,

hab herausgefunden, dass sobald ich den Binärenwert ändere, also die ganzen 00 rausnehme, funktioniert die Ausgabe wie erwünscht ;O ….nur ich kann ja nicht immer die 00 aus der Datei rauslöschen oder?

Zum Beispiel:

Der Eintrag „Test Software“ sieht binär in der Datei so aus:

54 00 65 00 73 00 74 00
20 00 53 00 6F 00 66 00
65 00 00 00

Löscht man nun die 00, die nach jedem paar auftaucht, so kann man den Wert ordentlich auslesen!
Also nun seid ihr gefragt.
Wie kann ich das alles automatisieren? Ein Stück Quellcode wäre sehr nett.

Danke

Der Wert von „DisplayName“ ist eigentlich „Test Software“, mir
wird aber lediglich -> T "), dann sollte es funktionieren.

http://en.wikipedia.org/wiki/Wide_character

Viele Grüße
Thorsten

Danke für deine Antwort, dass werde ich mal versuchen…Allerdings das was mit RakonDark sagen will habe ich nicht verstanden…
Da ist bei mir das Wochenende zu nah ;O

probier doch ma

unsigned char temp[99] = {""};
unsigned long size = sizeof(temp);
CString tmp;
RegQueryValueEx(hKey, „“, NULL, NULL, temp, &size);
RegCloseKey(hKey);
tmp.Format("%s", temp);