|
Как передать в COM интерфейс, если обращения идут через InvokeMember ?
|
|||
---|---|---|---|
#18+
Приветствую. Изначально было наверное не правильно создавать COM через позднее связывание и затем вызывать его методы через InvokeMember. Но сейчас, пожалуй, уже поздно все переделывать заново. Подскажите как быть пожалуйста. Имеется COM объект в DLL. Написан на Delphi7. В C# он используется так: Код: c# 1. 2. 3. 4.
Сейчас нужно добавить к нему возможность, чтобы он вызывал методы сервера (ну т.е. того, кто держит в себе этот COM объект) Для этого, доработал COM объект, описав в его TLB дополнительный интерфейс Код: pascal 1. 2. 3.
А также, в основной его интерфейс добавил метод инициализации коллбэка Код: pascal 1.
После чего, импортировал в проект VS эту DLL с COMом внутри. Благодаря чему получил доступ к описанию интерфейса. Затем (в VS) создал класс, реализующий этот интерфейс. Создаю этот объект. И пытаюсь передать его в COM через InvokeMember Код: c# 1. 2.
ииииии. Не работает блин. Вылетает ошибка: Код: c# 1.
и его innerException: Код: c# 1.
Подскажите пожалуйста, как надо правильно ! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 23:02 |
|
Как передать в COM интерфейс, если обращения идут через InvokeMember ?
|
|||
---|---|---|---|
#18+
Вот как интерфейс описан в Delphi Код: pascal 1. 2. 3. 4. 5. 6. 7. 8.
и описание импортированной библиотеки, как оно видится в VS Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 23:19 |
|
|
start [/forum/topic.php?fid=20&fpage=134&tid=1403522]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 143ms |
0 / 0 |