пятница, 12 апреля 2013 г.

Кросс-платформенные библиотеки

Перевод раздела Cross-Platform Shared Libraries из справочной системы Delphi

Совместное использование библиотек в приложениях Mac OS X

При разработке кросс-платформенных библиотек в Delphi, необходимо изучить некоторые требования, налагаемые платформами. В особенности это касается функций в библиотеках для OS X, которые необходимо вызывать и загружать динамически. Необходимо помнить, что:

  • Имена динамически загружаемых функций должны начинаться с нижнего подчеркивания ('_').
  • Инструкции exports должны быть перемещены из файлов .dpr в файлы .pas.

Эти два правила разъясняются далее.

Пакеты

Перевод раздела Packages (Delphi) из справочной системы Delphi

Пакеты обычно являются наиболее предпочтительным способом для экспорта, когда речь идет о чем-то более сложном, нежели функции и процедуры. Библиотеки следует использовать только в тех случаях, когда требуется обеспечить совместимость на уровне приложений.

Разработка динамически загружаемых библиотек

Перевод раздела Writing Dynamically Loaded Libraries из справочной системы Delphi

Замечание: Библиотеки в части экспорта ограничены значительно больше, чем пакеты. Библиотеки не могут экспортировать константы типы и обычные переменные. То есть класс, объявленный в библиотеке, не может быть виден в программе, которая ее использует.

Для экспорта всего, что не является процедурой или функцией, рекомендуется применять пакеты. Библиотеки следует рассматривать только в том случае, если необходима совместимость с другими программами.

Библиотеки и пакеты

Перевод раздела Libraries and Packages (Delphi) из справочной системы Delphi

Динамически загружаемые библиотеки – это библиотеки динамического связывания (dynamic-link library (DLL)) под Windows или DYLIB на Mac. Они представляют собой подборку подпрограмм, которые могут вызываться приложениями или другими библиотеками. Как и модули, динамически загружаемые библиотеки содержат программный код или ресурсы, предназначенные для совместного использования. Однако этот тип библиотеки компилируется отдельно и связывается с использующей его программой во время ее выполнения.

Программы, написанные на Delphi, могут вызывать DLL и сборки, написанные на других языках, и приложения, написанные на других языках, могут вызывать DLL или сборки, разработанные в Delphi.