Разнообразие импортируемых функций не ограничено ничем
Не изменяются коды библиотеки (компоненты)
Не происходит разбухания объектного кода, т.к. не используются шаблоны - все функции конкретно и явно описаны в заголовочных файлах
Полностью автоматизированный процесс генерации кода, включая опреде-ление идентификаторов функций (параметров для GetProcAddress)
Мнемоника кода не ухудшается: имена функций остаются неизменными
Минимальный объём ручного кодирования - всего 2 строки:
Включение заголовочного файла
Вызов метода LoadDll
Технология применима не только для BCB, но и для, например, Visual C++, а также - с небольшой адаптацией - для любого языка/среды разработки; Например, в Visual C++:
сгенерированный код можно использовать без изменений (только за-комментировав включение vcl.h)
вместо компоненты TAskDll следует создать класс.
Многие разработчики делают компоненты-обёртки для функций DLL - их применение намного удобнее. Для этих целей как нельзя лучше подходит данная технология:
Создаётся компонента, производная от TAskDll
Сгенерированный модуль (Example_Load.cpp) включается в проект пакета
В конструкторе компоненты свойству DllName присваивается имя DLL
В методе Loaded компоненты вызывается метод LoadDll. Всё!