Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
Delphi 6 Personal
|
String to PWideChar, wie wird es gemacht ?
5. Dez 2009, 15:02
Zitat von turboPASCAL:
Hi,
ich habe ein kleines Problem mit der Umwandlung eines (Delphi6- Ansi)Strings in einen PWideChar-Typen.
Delphi-Quellcode:
function StringToPWideChar(const s: AnsiString): PWideChar;
var
len: integer;
begin
//Result := StringToOleStr(s); {StringToOleStr & SysFreeString haben ein Memleakproblem }
len := MultiByteToWideChar(CP_ACP, 0, PAnsiChar(s), -1, nil, 0);
GetMem(Result, Len+1);
MultiByteToWideChar(CP_ACP, 0, PAnsiChar(s), -1, Result, Len);
end;
function FreePWChar(ws: PWideChar): Bool;
begin
//SysFreeString(ws);
if ws <> nil then FreeMem(ws);
end;
//Edit:
So klappts:
Delphi-Quellcode:
function StringToPWideChar(const s: AnsiString): PWideChar;
var
len: integer;
begin
//Result := StringToOleStr(s);
if s <> '' then
begin
len := length(s);
GetMem(Result, Len * 2);
MultiByteToWideChar(CP_ACP, 0, PAnsiChar(s), -1, Result, Len);
end else
Result := #0;
end;
function FreePWChar(ws: PWideChar): Bool;
begin
//SysFreeString(ws);
if ws <> nil then FreeMem(ws);
end;
|
|
Zitat
|