Всем привет. У меня есть компонет, который написан другим разработчиком на Delfi. Он представляет собой dll-файл. Каким образом его можно использовать в Visual C++ ? никак не удаётся его подключить
Здравствуйте, <Аноним>, Вы писали:
А> Всем привет. У меня есть компонет, который написан другим разработчиком на Delfi. Он представляет собой dll-файл. Каким образом его можно использовать в Visual C++ ? никак не удаётся его подключить
Проси с него еще tlb файл — библиотеку типов. Потом регистрируй компоненту в реестре: "regsvr32 MyComponent.dll". Содержимое библиотеки типов можешь посмотреть с помощью системной утилиты oleview. В проекте в студии (например, для консольного приложения, перед функцией main) пишешь
#import "MyComponent.tlb" no_namespace named_guids raw_interfaces_only
И, если знаешь имя интерфейса и ГУИД объекта, который будешь создавать, пиши что-то вроде
IMyInterfacePtr p(CLSID_CMyComponent);
А если не знаешь — изучай библиотеку типов

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, SageMath, Вы писали:
SM>Проси с него еще tlb файл — библиотеку типов. Потом регистрируй компоненту в реестре: "regsvr32 MyComponent.dll". Содержимое библиотеки типов можешь посмотреть с помощью системной утилиты oleview. В проекте в студии (например, для консольного приложения, перед функцией main) пишешь
SM>SM>#import "MyComponent.tlb" no_namespace named_guids raw_interfaces_only
SM>
SM>И, если знаешь имя интерфейса и ГУИД объекта, который будешь создавать, пиши что-то вроде
SM>SM>IMyInterfacePtr p(CLSID_CMyComponent);
SM>
SM>А если не знаешь — изучай библиотеку типов
спасибо, это заработало. ТОлько теперь возникла другая проблема — компонент реализует несколько методов. Те, которые принимают в качестве параметров стандартные типы данных, работают нормально. Но один метод, который в качестве параметра принимает указатель на структуру, определённую пользователем, не работает (в компонент попадает указатель на непонятно что). Причём, этот компонент при отладке разработчиком в приложении на Delfi работает нормально...