[Lazarus] non Unicodode application

Michael Van Canneyt michael at freepascal.org
Fri Feb 12 17:16:29 CET 2016



On Fri, 12 Feb 2016, Mattias Gaertner wrote:

> On Fri, 12 Feb 2016 15:16:38 +0100 (CET)
> Michael Van Canneyt <michael at freepascal.org> wrote:
>
>> [...]
>> {$define String:=RawByteString}
>>
>> and you are done.
>
> Won't compile when calling RTL functions with var parameters.
>
> I fail to see why RawByteString should do less conversions than using
> AnsiString, when porting a Delphi 7 application. Can you give an
> example?

As I understand it, calling

Procedure MyProcedure(S : RawByteString) ;

begin
end;

with

Type
   T = Type Ansistring(850);


Var
   D : T;

begin
   MyProcedure(d)
end;

will not cause any code page conversion. While if it was

Procedure MyProcedure(S : String) ;

Then the compiler would first convert the code page to
DefaultSystemCodePage or CP_ACP

Michael.




More information about the Lazarus mailing list