|
|
|
Как передать в 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:19 |
|
||
|
Как передать в 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:33 |
|
||
|
|

start [/forum/topic.php?fid=20&tid=1403522]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 474ms |

| 0 / 0 |
