четверг, 16 мая 2013 г.

На что надо обратить внимание при портировании с Delphi 7 на Delphi XE3


1. String = WideString
PChar = PWideChar
Char = WideChar
– это - более чем весело (особенно PChar <> PByte, ведь ни для кого не секрет, что многие использовали PChar Не как "указатель на символ", а как "указатель на byte к которому применима адресная арифметика". Fail тут - обеспечен).
Я "тупо" взял и поменял всё это на AnsiString, PAnsiChar, AnsiChar. Поиском/заменой. А потом - поменял обратно - там где не собралось - в стандартных классах. Там где override. Типа KeyDown. Ну и естественно поменял - шаблоны кодогенерации.
2. FormatSettings - теперь запись с полями и методами. ShortDateFormat теперь равно FormatSettings.ShortDateFormat etc.
3. менеджер памяти - другой. Со всеми вытекающими. Кстати при ПРАВИЛЬНОМ подходе - позволяет найти много ошибок в старом коде "не сходя с места".
4. канва почему-то несколько по-иному себя ведёт
5. NativeInt etc. И их несовместимость с Integer и Cardinal. ДАЖЕ в 32 битах.
6. Часть функций API стали принимать/возвращать беззнаковые значения, вместо знаковых. И наоборот.
7. Записи по умолчанию на 8 байт выравниваются. Если вы использовали, что-то типа THackControl или записи на диск - тут надо быть внимательным.
8. Forms -> VCL.Forms etc.

Ну и ссылка от Embarcadero. Не совсем в тему, но полезная:
http://docwiki.embarcadero.com/RADStudio/XE4/en/Converting_32-bit_Delphi_Applications_to_64-bit_Windows

Комментариев нет:

Отправить комментарий