[fpc-pascal] Re: Converting StrLCopy to widestrings

Felipe Monteiro de Carvalho felipemonteiro.carvalho at gmail.com
Sat Nov 17 11:59:42 CET 2007

I managed to get it working with:

  {$ifdef WindowsUnicodeSupport}
    if UnicodeEnabledOS then
      FileNameWide := UTF8Decode(FileName);

      FillChar(FileNameWideBuffer^, FileNameBufferLen * 2 + 2, #0);

      if Length(FileNameWide) > FileNameBufferLen then
       FileNameBufferSize := FileNameBufferLen
      else FileNameBufferSize := Length(FileNameWide);

      Move(FileNameWide[1], FileNameWideBuffer^, FileNameBufferSize * 2);
      StrLCopy(FileNameBuffer, PChar(UTF8ToAnsi(FileName)), FileNameBufferLen);
    StrLCopy(FileNameBuffer, PChar(FileName), FileNameBufferLen);

But still, the code would be much simpler and shorter if there were
PWideChar routines

Felipe Monteiro de Carvalho

More information about the fpc-pascal mailing list