|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Вызывается не тот метод COM
У меня есть свой АктивХ компонент написанный на С++ в вижуал студии 2019. Написан давно и постоянно дорабатывается. Использую я его в дельфи в том числе. В основном проблем нем, но бывает порою взбрыкнет дельфя. И как то получалось исправить своими силами. Вот в очередной раз я встретил вилы.
Есть у меня в компоненте интерфейс IDictionaryJO. У него есть метод GetInterface. Код:
IDictionaryJO = interface(IUnknown) ['{some guid here}'] // ... another methods function GetInterface(name: PAnsiChar; out interf: IUnknown): HResult; stdcall; // ... another methods end; Это из генерёнки, при импорте компонента. Список методов, их порядок и сигнатуры соответствуют тем что реально находятся в компоненте. Загвоздка в том, что при вызове данного метода вызывается другой метод этого интерфейса, а именно этот: Код:
function Get(name: PAnsiChar; out param: OleVariant): HResult; stdcall; Подскажите в чем загвоздка? Дабы не тратить время лишнее также добавлю что полностью обновлял пэкадж. Удалял старый и через IDE и руками с диска. А потом импортировал заново. |
#2
|
|||
|
|||
А сам компонент перерегистрировал?
|
#3
|
|||
|
|||
Цитата:
да проблема собсно решена, оказывается в *.idl файле забыли добавить два метода. Меня смутило что методы все равно вызываются, без всяких ошибок, это ппц просто) |
#4
|
|||
|
|||
Ну, формально, сигнатуры совместимы. Поэтому, видимо, и вызывается...
|