2009/12/7 Alemão <forumdel...@gmail.com>:
> Alguem da lista consegue me explicar a diferença entre string no delphi 2006
> e string no delphi 2009? O PCHAR também.

String é um array de Char. PChar é um ponteiro para Char. Char é um
atalho. Até o Delphi2006, Char era um atalho para AnsiChar, e do 2007
em diante é um atalho para WideChar. Qual a diferença? AnsiChar é uma
estrutura de um byte, que guarda um caracter iso e semelhantes.
WideChar é uma estrutura de dois bytes que guarda um caracter UTF-16.

O problema todo gira em torno de supor que um Char tem sempre um byte,
o que não é verdade. Um Char tem o tamanho de SizeOf(Char). Quando é
necessário que a string seja formada por caracteres que ocupam apenas
um byte, então é necessário trabalhar com AnsiString, que é um array
de AnsiChar, cujo ponteiro é PAnsiChar.

Joao Morais

Responder a