![]() |
|
![]() ![]() ![]() |
|
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
По-порядку:
У меня есть длл в котором есть СОМ объект. Для создания объекта в длл есть функция CreateObject(IGadget** gadget, HINSTANCE hinst), которую я нахожу через GetProcAddres(*), и вызываю ее для создания СОМ объекта.
Объект создается все прекрасно работает, но у IGadget есть еще некоторые свои методы, например ShowObject(bool show) Так вот, проблема в том, как эти функции вызывать? Я знаю что у IDispatch есть метод Invoke, но его применить у меня не получается. Если можно примерчик с Invoke, или хотя-бы расскажите как сделать. Спасибо. -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
|
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
xvr, спасибо, дома попробую, в понедельник отпишусь
![]() -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
Не пойму в чем проблема, программа падает при вызове
Access violation !!! Хотя указатель dispPtr живой и валидный, а посмотреть кто падает не знаю как. ![]() -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Может объект надо создавать через стандартные средства COM/ActiveX, а не дергая напрямую функцию из dll. Если созданный объект пользуется сервисами COM, то может и упасть. |
||||
|
|||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 1 Всего: 36 |
Andrey44,
Так вот, проблема в том, как эти функции вызывать? QueryInterface уже не по-пацански? |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
Rififi, Как я могу вызвать QueryInterface когда у меня не хедера и я не знаю как интерфейс называется.
Я знаю что у него есть некоторые методы и все Добавлено через 8 минут и 32 секунды Этот объект даже не зарегистрирован в системе. И он не пользуется сервисами COM. -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 1 Всего: 36 |
Andrey44,
что там, даже библиотеки типов нет? |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Может он не IDispatch, или вообще не COM объект? Хоть что то о нем известно? |
|||
|
||||
Andrey44 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
Как я и писал, он(объект) создается и я его вижу, он работает так как надо, НО Я ХОЧУ ИМ УПРАВЛЯТЬ!!! Известно, что он пронаследован от IUnknown и что он прекрасно работает когда создан. Известно
Вот и все что о нем можно сказать. -------------------- ????? ??, ??????? ?????. ![]() |
||||||
|
|||||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Так от IDispatch или от IUnknown? Это две большие разницы! Их методы вызываются ПРИНЦИПИАЛЬНО разным способом. От IDispatch можно звать, как я писал, от IUnknown их нужно звать напрямую. Во втором случае без дополнительной информации не обойтись - сам объект такой информации не содержит ![]() PS. Можешь сюда dll кинуть? |
||||
|
|||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
100% от IUnknown Могу конечно, но только завтра утром. Нет сейчас с собой. xvr, Спасибо большое что помогаешь ![]() -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
И еще, очень странно! Дома работает вызов функции
А на работе отказывается работать. Объект не создается и все падает при вызове функции pfnMy((void**)&dispPtr, GetModuleHandle(0)); Хотя дома и на работе Виста стоит. Кстати это должно работать только под Вистой, не меньше. Я уже запутался, почему так? Добавлено через 2 минуты и 10 секунд Забыл, вот дллка Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
xvr |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Может библиотек не хватает? Оно использует:
![]() |
||||||||
|
|||||||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
xvr, Спасибо, что-то буду думать.
![]() -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |