Использование VC++ ActiveX из Delphi
От: staya Россия  
Дата: 04.03.02 12:20
Оценка:
Возникли проблемы при использовании написанной на VC++ ActiveX через Delphi с помощью позднего связывания. ActiveX нормально работает при вызове её из VB, Explorer-а и ActiveX Control Test Container от VC++. При использовании импорта библиотеки типов в Дельфи, объект создается, методы-свойства вызываются и доступны, но отрисовка контролов и обработка событий нажатия клавиш происходит ооочень медленно. А если создавать olevariant-объект с помощью CreateOleObject с последующим использованием позднего связывания, то на вызове методов и свойств происходит OleSystemError "Критический сбой". Всё это выполняется на одной машине с установленными Visual C++ и Delphi.
В чем может быть проблема — почему возникает сбой при вызове методов с помощью позднего связывания из Дельфи?

Спасибо. Ольга.
Всего хорошего. Ольга.
Re: Использование VC++ ActiveX из Delphi
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.03.02 23:24
Оценка:
Здравствуйте staya, Вы писали:

S>Возникли проблемы при использовании написанной на VC++ ActiveX через Delphi с помощью позднего связывания. ActiveX нормально работает при вызове её из VB, Explorer-а и ActiveX Control Test Container от VC++. При использовании импорта библиотеки типов в Дельфи, объект создается, методы-свойства вызываются и доступны, но отрисовка контролов и обработка событий нажатия клавиш происходит ооочень медленно. А если создавать olevariant-объект с помощью CreateOleObject с последующим использованием позднего связывания, то на вызове методов и свойств происходит OleSystemError "Критический сбой". Всё это выполняется на одной машине с установленными Visual C++ и Delphi.

S>В чем может быть проблема — почему возникает сбой при вызове методов с помощью позднего связывания из Дельфи?

Ставь Дельфи в качестве отлаживаемого процесса в VC и ... Другого способа вроде нет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Использование VC++ ActiveX из Delphi
От: staya Россия  
Дата: 05.03.02 08:19
Оценка:
Здравствуйте VladD2, Вы писали:

VD>Ставь Дельфи в качестве отлаживаемого процесса в VC и ... Другого способа вроде нет. :(


Может, я чего-то не понимаю? Но у меня из-под Delphi запускается сишная ActiveX, а не наоборот.
Всего хорошего. Ольга.
Re[3]: Использование VC++ ActiveX из Delphi
От: Dima2  
Дата: 05.03.02 11:29
Оценка:
Здравствуйте staya, Вы писали:

S>Здравствуйте VladD2, Вы писали:


VD>>Ставь Дельфи в качестве отлаживаемого процесса в VC и ... Другого способа вроде нет.


S>Может, я чего-то не понимаю? Но у меня из-под Delphi запускается сишная ActiveX, а не наоборот.


Это тебе Влад сказал что делать, чтобы отладить твою ActiveX, под "и....." надо понимать мучительный процесс. Если ты написала ActiveX сама, то в Project->Settings[Debug] указываеш Delphi.exe в качестве файла для отладки.
Re: Использование VC++ ActiveX из Delphi
От: Sergeant Украина www.photomirror.com.ua
Дата: 05.03.02 11:52
Оценка:
Здравствуйте staya, Вы писали:

S>Возникли проблемы при использовании написанной на VC++ ActiveX через Delphi с помощью позднего связывания. ActiveX нормально работает при вызове её из VB, Explorer-а и ActiveX Control Test Container от VC++. При использовании импорта библиотеки типов в Дельфи, объект создается, методы-свойства вызываются и доступны, но отрисовка контролов и обработка событий нажатия клавиш происходит ооочень медленно. А если создавать olevariant-объект с помощью CreateOleObject с последующим использованием позднего связывания, то на вызове методов и свойств происходит OleSystemError "Критический сбой". Всё это выполняется на одной машине с установленными Visual C++ и Delphi.

S>В чем может быть проблема — почему возникает сбой при вызове методов с помощью позднего связывания из Дельфи?

У меня нечто подобное было, когда я MFC подключал к ActiveXу своему как shared DLL. Подключил in a static library — все задышало.
Курить я буду, но пить не брошу.
Re[4]: Использование VC++ ActiveX из Delphi
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.03.02 22:10
Оценка:
Здравствуйте Dima2, Вы писали:

D>Это тебе Влад сказал что делать, чтобы отладить твою ActiveX, под "и....." надо понимать мучительный процесс. Если ты написала ActiveX сама, то в Project->Settings[Debug] указываеш Delphi.exe в качестве файла для отладки.


Да! Кстати, не стоит забывать, что отлаживаемый процесс (Дельфёвый exe-шник) запускается отдельно и если проблемы в рантайте, то отлаживаемым процессом нужно ставить именно создаваемый exe-шник.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Тормоза CListCtrl в VC++ ActiveX из-под Delphi
От: staya Россия  
Дата: 11.03.02 06:34
Оценка:
S> У меня нечто подобное было, когда я MFC подключал к ActiveXу своему как shared DLL. Подключил in a static library — все задышало.

Проблема решилась — дело было в том, что я создавала ActiveX control, а не просто COM-объект с поддержкой автоматизации. Первый требовал наличия контейнера, которого нет при позднем связывании (во всяком случае, в Дельфи).

Однако осталась проблема медленной обработки сообщений (прорисовки) при использовании CListCtrl-а в диалоге, который вызывается из этого COM-объекта, при создании объекта из-под Delphi, в то время как в браузере и бейсике все работает шустро.
Всего хорошего. Ольга.
Re[3]: Тормоза CListCtrl в VC++ ActiveX из-под Delphi
От: Аноним  
Дата: 11.03.02 06:48
Оценка:
S>Однако осталась проблема медленной обработки сообщений (прорисовки) при использовании CListCtrl-а в диалоге, который вызывается из этого COM-объекта, при создании объекта из-под Delphi, в то время как в браузере и бейсике все работает шустро.

Эта проблема тоже решилась — надо было всего лишь отключить опцию Integrated debugging в среде Delphi :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.