COM-объекты в DLL
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



COM-объекты в DLL Expand / Collapse
Автор
Сообщение
08.10.2006 20:43
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 08.10.2006 21:01
Сообщ.: 1, Visits: 4
Есть мой проект и есть COM-объект (драйвер контроллера) в DLL отдельно (CmdDrv.dll). Как подключить DLL к моему проекту и обращаться к драйверу?


Простейшая версия программы написана на VB всего в нескольких строках и работает из формы на странице MSWord:

Код:
Set x = CreateObject("CmdDrv.XX100")
x.ConnectionString = ConnectionString.Text
Result.Text = x.Execute(Command.Text)



P.s. Работаю в C++ Builder 6
Сообщ. #905432
12.10.2006 23:46
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 21.09.2008 22:51
Сообщ.: 60, Visits: 641
Честно говоря как в C++ Builder не знаю, - не работаю в нём, а VC++ можно использовать директиву #import. Покопайтесь в help'e, может C++ Builder есть что-то похожее. А по #import в VC++ используют примерно так:

#import "You_COM.dll" rename_namespace("Your_new_namespace")

using namespace Your_new_namespace;

А потом для удобства используют смарт-поинтеры (безопасные указатели), примерно так:

IMyInterfacePtr m_mi(__uuidof(My_COM_Class));  /*существующий интерфейс IMyInterface, My_COM_Class - кокласс, находящийся в Вашей библиотеке. __uuidof - возвращает CLSID Вашего кокласса - это 128 битное значение*/

m_mi->My_method();

/*после окончании работы с указателем на vtbl интерфейса инициализировать smart pointer нулём*/

m_mi = NULL;

Уверен, что в C++ Builder есть способы для программирование (использования) COM-объеков, надо только поискать :). А, вообще, лучше книгу по технологии COM почитать.

Удачи Вам!

Сообщ. #905624
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 6:33