Thema: Prism Registry und DWORDs

Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#1

Registry und DWORDs

  Alt 27. Apr 2004, 09:55
Hat jemand schon mal DWORDs und binäre Daten in der Registry gespeichert?
Also, Strings (REG_SZ) und Arrays (REG_MULTI_SZ) sind ja kein Thema:
Delphi-Quellcode:
procedure TWinForm.Button2_Click(sender: System.Object; e: System.EventArgs);
var
  reg : RegistryKey;
  arg : array of string;
begin
  try
    reg := Registry.CurrentUser.CreateSubKey('Software\Testschlüssel');
  except
    reg := nil;
  end;

  if(reg <> nil) then
  begin
    // REG_SZ
    reg.SetValue('RegSZ',string('Hallo, Welt!'));

    // REG_MULTI_SZ
    SetLength(arg,2);
    arg[0] := 'Hallo';
    arg[1] := 'Welt!';
    reg.SetValue('RegMultiSZ',arg);
    SetLength(arg,0);


    reg.Free;
  end;
end;
aber DWORDs?

Auf einer Seite (muss ich mal suchen ) las ich, dass es beim Speichern von sehr großen Integer-Werten einen Bug im .NET-Framework geben soll. Als Workaround wurde das Typecasting als "Int32" empfohlen, was in C# (glaube ich) in etwa so aussah:
Code:
RegistryKey reg = Registry.CurrentUser.CreateSubkey('Software\Testschlüssel');
System.UInt32 ui = 123456;
reg.SetValue('Dword',(Int32)ui);
Is aus´m Kopf geschrieben, weil ich die Seite gerade nicht parat habe. Wie gesagt: Es ging auf der Seite eigentlich um einen Bug, aber zumindest sah ich damit einen Ansatz zum Speichern von DWORDs. Wenn ich allerdings versuche, dieses Prinzip in Delphi umzusetzen
Delphi-Quellcode:
var
  ui : System.UInt32;
begin
  { ... }

    ui := 123456;
    reg.SetValue('RegDword',Int32(ui));

  { ... }
end;
dann erzählt mir der Compiler, es gäbe keine Funktion von "SetValue", die ich so aufrufen könne.

Wo ist mein Fehler?
  Mit Zitat antworten Zitat