Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#1

String to PWideChar, wie wird es gemacht ?

  Alt 5. Dez 2009, 14: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;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat