Возникли проблемы при использовании написанной на VC++ ActiveX через Delphi с помощью позднего связывания. ActiveX нормально работает при вызове её из VB, Explorer-а и ActiveX Control Test Container от VC++. При использовании импорта библиотеки типов в Дельфи, объект создается, методы-свойства вызываются и доступны, но отрисовка контролов и обработка событий нажатия клавиш происходит ооочень медленно. А если создавать olevariant-объект с помощью CreateOleObject с последующим использованием позднего связывания, то на вызове методов и свойств происходит OleSystemError "Критический сбой". Всё это выполняется на одной машине с установленными Visual C++ и Delphi.
В чем может быть проблема — почему возникает сбой при вызове методов с помощью позднего связывания из Дельфи?
Здравствуйте staya, Вы писали:
S>Возникли проблемы при использовании написанной на VC++ ActiveX через Delphi с помощью позднего связывания. ActiveX нормально работает при вызове её из VB, Explorer-а и ActiveX Control Test Container от VC++. При использовании импорта библиотеки типов в Дельфи, объект создается, методы-свойства вызываются и доступны, но отрисовка контролов и обработка событий нажатия клавиш происходит ооочень медленно. А если создавать olevariant-объект с помощью CreateOleObject с последующим использованием позднего связывания, то на вызове методов и свойств происходит OleSystemError "Критический сбой". Всё это выполняется на одной машине с установленными Visual C++ и Delphi. S>В чем может быть проблема — почему возникает сбой при вызове методов с помощью позднего связывания из Дельфи?
Ставь Дельфи в качестве отлаживаемого процесса в VC и ... Другого способа вроде нет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте staya, Вы писали:
S>Здравствуйте VladD2, Вы писали:
VD>>Ставь Дельфи в качестве отлаживаемого процесса в VC и ... Другого способа вроде нет.
S>Может, я чего-то не понимаю? Но у меня из-под Delphi запускается сишная ActiveX, а не наоборот.
Это тебе Влад сказал что делать, чтобы отладить твою ActiveX, под "и....." надо понимать мучительный процесс. Если ты написала ActiveX сама, то в Project->Settings[Debug] указываеш Delphi.exe в качестве файла для отладки.
Здравствуйте 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 — все задышало.
Здравствуйте Dima2, Вы писали:
D>Это тебе Влад сказал что делать, чтобы отладить твою ActiveX, под "и....." надо понимать мучительный процесс. Если ты написала ActiveX сама, то в Project->Settings[Debug] указываеш Delphi.exe в качестве файла для отладки.
Да! Кстати, не стоит забывать, что отлаживаемый процесс (Дельфёвый exe-шник) запускается отдельно и если проблемы в рантайте, то отлаживаемым процессом нужно ставить именно создаваемый exe-шник.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Тормоза CListCtrl в VC++ ActiveX из-под Delphi
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 :)