Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
AW: [Fehler] Registry Einträge abgeschnitten
29. Mai 2011, 13:46
Moment mal:
Delphi-Quellcode:
function TMpuRegistry.ReadStringW(const ValueName: WideString;
var Value: WideString): LongInt;
var
cbData: Integer;
lpType: DWORD;
Buffer: PWideChar;
begin
// get size of required data
result := RegQueryValueExW(FhkResult, PWideChar(ValueName), nil, @lpType, nil,
@cbData);
if cbData <> 0 then
begin
GetMem(Buffer, cbData);
try
result := RegQueryValueExW(FhkResult, PWideChar(ValueName), nil, @lpType,
Pointer(Buffer), @cbData);
Value := Buffer;
finally
FreeMem(Buffer);
end;
end;
end;
Da sind doch schon die Unicode Versionen drin. Oder funktionieren die unter Delphi 2009 nicht?
OK, die Ansi Versionen crashen natürlich, weil ich keinen AnsiString benutzt habe:
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, nil,
@cbData);
if cbData <> 0 then
begin
GetMem(Buffer, cbData);
try
result := RegQueryValueEx(FhkResult, PChar(ValueName), nil, @lpType,
Pointer(Buffer), @cbData);
Value := Buffer; // <- hier AccessViolation
finally
FreeMem(Buffer);
end;
end;
end;
Und das meinte ich mit "in weiter Ferne".
Michael Ein Teil meines Codes würde euch verunsichern.
Geändert von Luckie (29. Mai 2011 um 13:50 Uhr)
|
|
Zitat
|