Энциклопедия C++ Builder




ОБЩИЕ ХАРАКТЕРИСТИКИ - часть 14


1.3.2.4 Как использовать код C++Builder в Delphi

В C++ разрешен ряд синтаксических конструкций (таких как множественное наследование и перегрузка функций), которые делают невозможным прямой перенос кода C++Builder в проект для Delphi. Однако, существуют следующие обходные пути:

• Компоновать СОМ объекты, написанные на C++, которые поддерживают типизированные библиотеки - все необходимые для сборки проекта приложения файлы Delphi 97 генерирует автоматически из соответствующих библиотек.

• Любая функция, написанная на C++ и помещенная в DLL, может быть прямо вызвана из Delphi - Delphi поддерживает все общие спецификаторы вызова функций CDECL, PASCAL и STDCALL.

• Обращаться к объектам, написанным на C++, из Delphi посредством упомянутых Таблиц Виртуальных Методов.

В принципе, существует возможность подгружать объектные модули (файлы с расширением

OBJ) непосредственно к Delphi в процессе сборки приложения. Однако, эта мощная методика имеет ряд ограничений, которые зачастую бывает трудно выдержать.

1.3.2.5 Перевод кода Delphi на C++Builder

Быть может, вы действительно собираетесь ретранслировать все свои программы из Delphi в C++Builder. Или, скорее всего, вам понадобилось наскоро переложить какие-то интересные примеры Delphi на язык C++. В любом случае следует остерегаться подстерегающих вас ловушек и "ложных друзей переводчика". Безусловно, вы преодолеете принципиальные различия синтаксиса объектно-ориентированных языков, а компилятор поможет вам в этом. Опасность скорее таится в ошибочной трактовке простых операторов и понятий, на которые следует обратить внимание.

Оператор членства используется для доступа к любой функции, свойству или переменной, принадлежащих некоторому классу - объявленному на Паскале или на C++. Все объекты Паскаля создаются в куче (heap) и для обращения к перечисленным членам класса используется оператор "точка" (.), например:

Label.Text := 'Hello There;';

Ha C++ дело обстоит несколько сложнее, поскольку объекты могут быть созданы не только в куче, но и на стеке. Для обращения к объекту C++, созданному на стеке, служит оператор прямого членства "точка", например:




Содержание  Назад  Вперед