Zitat von
stz:
so, also jetzt nochmal richtig:
Delphi-Quellcode:
function GetUName(cCodwW: WideChar; pBufferW: PWideChar): integer;
stdcall; external 'getuname.dll';
function GetUnicodeName(code: WideChar): String;
var
buffer: PWideChar;
begin
GetMem(buffer, 256 * SizeOf(WideChar));
try
GetUName(code, buffer);
Result := buffer;
finally
FreeMem(buffer, sizeof(buffer^));
end;
end;
Anbei ein Bild von der Anwendung (ist bzw. wird ein Teil von MEdit).
Gruß
Malte
Nicht ganz ...
Zitat von
Borland-Hilfe:
...
Der optionale Parameter Size enthält die Größe der freizugebenden dynamischen Variable (in Byte). Wenn er angegeben wird, muss er der Byte-Anzahl bei der Zuweisung mit GetMem entsprechen.
Lass den zweiten Parameter bei FreeMem einfach weg. Da wir nicht wissen, ob und wie wir den Rückgabewert von GetUName auswerten können, sollten man den Puffer vielleicht auch initialisieren.
Mein Vorschlag:
Delphi-Quellcode:
function GetUName(cCodwW: WideChar; pBufferW: PWideChar): integer;
stdcall; external 'getuname.dll';
function GetUnicodeName(code: WideChar): string;
var
Buffer: PWideChar;
begin
GetMem(Buffer, 256 * SizeOf(WideChar));
try
Buffer^ := #0;
GetUName(code, Buffer);
Result := Buffer;
finally
FreeMem(Buffer);
end;
end;