| | 29.09.2011, 03:46
Успешно выполнено портирование кода под 64х битный компилятор Delphi XE2. Только портирования как такового и не было...
Проблемы как всегда возникли в библиотеке mysql и криптографии. mysql.pas был обновлен до последней версии с официального сайта, а для openssl была заменена libeay32.dll на 64х битную. libmysql.dll, разумеется, так же была заменена.
Что касается нашего кода, то возникла небольшая нестыковка в классе таймеров: мультимедийный таймер использует фунцию timeSetEvent и в качестве callback функции передается параметр типа NativeUInt. Все бы хорошо, но в 64х битной среде NativeUInt эквивалентен UInt64, в то время как в 32х битной - Cardinal. Поэтому строчка кода
MMTimer1 := timeSetEvent(FTimerInterval, 1, MyTimerCallBackProg, 100, TIME_PERIODIC);
давала ошибку
[DCC Error] ObjTimer.pas(659): E2010 Incompatible types: NativeUInt and Cardinal
В данном случае замена MyTimerCallBackProg на @MyTimerCallBackProg решило проблему.
Вот, пожалуй, и все трудности перевода. Впечатляет.
Что касается выгоды перехода на 64х битную платформу, то пока рано что-либо говорить. Нужно проводить массивное тестирование обоих платформ и снимать показатели. Важно одно - мы получили долгожданную возможность создавать 64х битные приложения и в целом более менее понятны их преимущества.
Нет комментариев.
|
| |