Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

AV beim Lesen eines Strings aus Registry mit RegQueryValueEx

  Alt 18. Apr 2005, 15:30
Ich benutze folgenden Code, um einen String aus der Registry zu lesen:
Delphi-Quellcode:
function TMpuRegistry.ReadString(const ValueName: string; var Value: string):
  LongInt;
var
  cbData: Integer;
  lpType: DWORD;
  Buffer: PChar;
begin
  // get size of required data
  result := RegQueryValueEx(FhkResult, PChar(ValueName), nil, @lpType, @Value,
    @cbData);
  if cbData <> 0 then
  begin
    GetMem(Buffer, cbData);
    try
      result := RegQueryValueEx(FhkResult, PChar(ValueName), nil, @lpType,
        @Buffer, @cbData);
      Value := string(Buffer); // <- hier AccessViolation
    finally
      FreeMem(Buffer);
    end;
  end;
end;
An der markierten Stelle bekomme ich leider immer eine AV. Integer lesen geht problemlos, wenn ich Buffer als Integer deklariere, lesen. Wo steckt da jetzt schon wieder der Teufel?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat