Компиляция кода delphi 5 в Delphi 2009


Можно ли работать с проектом Delphi 5 в IDE Delphi 2009, ссылаясь на версию dcc32 Delphi 5?

Если да, то есть ли какие-либо проблемы, чтобы следить за тем, как настройки проекта (пути поиска, условные определения и т. д.) реализуются в 2009 году?

Edit: просто чтобы уточнить, я также обновляю проект до Unicode, но все равно нужно будет отлаживать и запускать релизы в старой конфигурации

3 2

3 ответа:

Это зависит от того, чего вы пытаетесь достичь и какие ограничения готовы принять.

Насколько мне известно, вы не можете использовать IDE Delphi 2009 для непосредственного обслуживания проектов Delphi 5. Например, даже если вы придерживаетесь функциональности, которая является общей между ними, некоторые свойства, которые не поддерживаются в Delphi 5, записываются в вашу DFMs, вызывая ошибку во время выполнения.

Я поддерживал проекты и библиотечный код, написанные на Delphi 2005/2006/2007, который был также используется в Delphi 6/7. Я обычно редактировал и отлаживал их, используя последнюю версию IDE. У меня были отдельные файлы проекта для каждой целевой версии и я убедился, что все они используют один и тот же диспетчер памяти . Наконец, у меня был автоматизированный процесс сборки и модульные тесты, которые удаляли несовместимые свойства из DFMs (мой собственный скруббер DFM), убеждались, что все целевые объекты всегда компилируются и запускают модульные тесты, которые также перекомпилируются для каждого целевого объекта.

В общем, это больше усилий, и я не рекомендую его, если у вас нет особых требований для этого.

Нет. Тем не менее, это все еще Delphi, и если у вас есть исходные версии или версии D2009 любых пользовательских компонентов, он может быть изменен для компиляции в Delphi 2009. Компоновка VCL довольно сильно изменилась с момента D5, поэтому ожидайте, что вам придется изменить свои предложения uses и, вероятно, переписать некоторые небольшие фрагменты здесь и там, но это выполнимо.

Вы либо переносите свой код на Delphi 2009/2010 level (Unicode), либо можете не устанавливать продукт.

Я предлагаю вам открыть проект и посмотреть, где он терпит неудачу, закрыть проект (ничего не сохраняя), найти нужные версии компонентов и установить их, и как только проект откроется в режиме разработки (все компоненты установлены), Вы можете начать перенос.

Прочитайте информацию о миграции (переносе) Unicode Delphi, доступную на веб-сайте.

Спросите себя каждый раз, когда вы видите PChar, и Char, если это должен быть PAnsiChar, или AnsiChar вместо этого? Если Вы читаете байты с диска, com-порта или сетевого подключения, вам нужно будет перейти с Char на AnsiChar, с PChar на PAnsiChar, в противном случае вы можете просто оставить Char и PChar как есть, и они станут Unicode. Всегда помните, что Char больше не байт.

Также необходимо заменить явные ссылки на узкие вызовы Win32 API версиями без суффикса A (ansi). Пример: CreateFileA может потребоваться стать просто CreateFile.

W