Рис. 6.20.Диалоговое окно New Items
Если вы хорошо знакомы с Delphi, например не раз выполняли в этой среде динамически подключаемые библиотеки, то для вас будет привычным созданный файл-заготовка проекта, начинающийся со служебного слова library. Сохраните его на жесткий диск в папку FirstLib под именем Hello_KOMPAS.dpr.
2. Теперь нужно связать этот файл с библиотеками типов КОМПАС, чтобы можно было пользоваться интерфейсами API. Выполните команду Project → Import Type Library, затем из списка Import Type Library появившегося окна выберите пункт Kompas6API5 (Version 1.0). При этом в текстовом поле под списком должен отобразиться путь к файлу библиотек типов КОМПАС (например, C:\Program Files\ASCON\KOMPAS-3D V10\Bin\kAPI5.TLB). Выбрав указанный пункт, нажмите кнопку Create Unit (рис. 6.21).
Рис. 6.21.Подключение библиотеки типов КОМПАС к Delphi
Примечание
Если в списке Import Type Library нет необходимого пункта, вы можете добавить его вручную, нажав кнопку Add и отыскав файл kAPI5.TLB (он находится в каталоге Bin папки, в которой установлен КОМПАС).
3. За несколько секунд Delphi сгенерирует PAS-файл с именем Kompas6API5-TLB, который будет иметь описание всех интерфейсов API 5. Измените имя (заголовок) скомпилированного модуля (автоматически добавленного в проект библиотеки), с Kompas6API5-TLB на ksTLB и сохраните проект.
4. Закройте окно, в котором был открыт файл Kompas6API5-TLB.pas, в редакторе кода Delphi и измените имя файла на ksTLB.pas. Сгенерированный файл Kompas6API5-TLB.pas с интерфейсами размещается в каталоге Imports папки, в которой установлен Delphi, например C:\Program Files\Borland\Delphi7\Imports.
5. Скопируйте переименованный файл в каталог FirstLib\dcu вашего проекта.
6. Перейдите в главное окно проекта. В разделе uses замените следующую строку: Kompas6API5-TLB in “C:\Program Files\Borland\Delphi7\Imports\Kompas6API5-TLB.pas” на ksTLB. Напомню вам о том, что путь к Kompas6API5-TLB.pas может быть другим (он зависит от того, где установлен Delphi). Однако это не имеет значения, поскольку запись генерируется системой автоматически при компиляции файла библиотек типов. Указывать путь к модулю ksTLB, который был скопирован в папку dcu проекта, нет необходимости.
7. При компиляции прикладной библиотеки будут использованы множество различных файлов с описаниями интерфейсов, констант и пр. В принципе, они могут быть размещены где угодно (при этом в разделе uses следовало бы задавать каждый путь явно), но для удобства работы с проектом рекомендую хранить их в папке dcu, где уже находится файл ksTLB.pas. Где бы все эти файлы ни находились, в Delphi необходимо указать путь к ним. Для этого выполните команду Project → Options, после чего на вкладке Directories/Conditionals открывшегося окна настроек проекта (рис. 6.22) задайте пути к файлам проекта:
•Output directory – путь, по которому Delphi будет сохранять скомпилированный файл прикладной библиотеки (в нашем примере подойдет каталог FirstLib);
•Unit output directory и Search path – полный путь к каталогу FirstLib\dcu. По этим путям система будет искать необходимые файлы библиотек КОМПАСа, а также сохранять скомпилированные DCU-файлы.
Рис. 6.22.Задание путей к файлам проекта прикладной библиотеки
8. Перейдите на вкладку Application диалогового окна настроек проекта. В поле Target file extension введите расширение, которое будет применяться для файла будущей библиотеки – RTW. Нажмите OK, чтобы сохранить настройки.
Теперь можете сохранить проект и выполнить компиляцию (для этого воспользуйтесь командой Project → Compile Hello_KOMPAS или сочетанием клавиш Ctrl+F9). В результате в папке FirstLib должна появиться пока еще пустая и бесполезная библиотека, файл которой назван системой Hello_KOMPAS.rtw.
Чтобы RTW-библиотека, написанная на Delphi, могла взаимодействовать с КОМПАС, в ней обязательно должны присутствовать как минимум три функции (для сред программирования на базе языка C или C++ достаточно двух, так как функции LibraryName и LibraryId объединены в одну – unsigned int WINAPI LIBRARYID()):
• LibraryEntry – точка входа в библиотеку;
• LibraryName – возвращает имя библиотеки, отображаемое в менеджере библиотек;
• LibraryId – возвращает идентификатор библиотеки (позже его можно использовать при работе с самой библиотекой, для подключения списка меню ее команд и пр.).
Все эти функции обязательно должны быть экспортными, то есть экспортируемыми из данной DLL, чтобы система КОМПАС могла их видеть и вызывать. По этой причине их обязательно нужно вынести в раздел exports прикладной библиотеки.
Читать дальше
Конец ознакомительного отрывка
Купить книгу