|
Проверить наличие метода в dynamic + System.__ComObject
|
|||
---|---|---|---|
#18+
Antonariy В ТЗ прописано позднее связывание. Эм. А как тогда в VBA инстанциируется COM-класс дотнетовской библиотеки? Через CreateObject? Если да, то в чём смысл? VBA - это интерпретируемый язык, в нем связывание в любом случае делается на рантайме. А относительно уже инстанциированного экземпляра термины late/early binding неприменимы, и поэтому в приведении типа к интерфейсу я не вижу ничего, нарушающего ТЗ. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 14:47 |
|
Проверить наличие метода в dynamic + System.__ComObject
|
|||
---|---|---|---|
#18+
Сон Веры Павловны А относительно уже инстанциированного экземпляра термины late/early binding неприменимы Для экземпляра под late bindig подразумеваются вызовы через IDispatch. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 14:54 |
|
Проверить наличие метода в dynamic + System.__ComObject
|
|||
---|---|---|---|
#18+
fkthat Сон Веры Павловны А относительно уже инстанциированного экземпляра термины late/early binding неприменимы Для экземпляра под late bindig подразумеваются вызовы через IDispatch. Для dynamic-экземпляра они и так будут делаться через IDispatch. А проверка/приведение типа - через IUnknown::QueryInterface. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 15:17 |
|
Проверить наличие метода в dynamic + System.__ComObject
|
|||
---|---|---|---|
#18+
Сон Веры Павловны А проверка/приведение типа - через IUnknown::QueryInterface. Ну да. Под капотом чтобы получить IDispatch (который, к слову сказать, сам от IUnknown наследуется) надо сначала вызвать QueryInterface. Потом уже ты вызываешь все что надо просто по имени метода (точнее по DispID, который по имени метода запрашиваешь). Typelib для всего этого необязателен. Он, в случае наличия, просто дополнительное удобство, которое позволяет заранее получить информацию о типах com-объектов (например, для генерации типизированных прокси, интеллисенса и т.п. вещей). А сам по себе IDispatch может прекрасно жить и работать вообще без typelib. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2020, 15:37 |
|
Проверить наличие метода в dynamic + System.__ComObject
|
|||
---|---|---|---|
#18+
Сон Веры Павловны Antonariy В ТЗ прописано позднее связывание. Смысл в том, что в последнее время мы плотно взялись за развитие COM-части ПО, включая ломание об колено старых херовых интерфейсов, и если запустить какой-нибудь макрос, не перекомпилированный после перелома, то возможны всякие фееричные ошибки вплоть до вылета экселя по-английски. Поэтому все наши шаблоны переведены на позднее связывание. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 10:01 |
|
|
start [/forum/topic.php?fid=20&startmsg=40025606&tid=1398406]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 132ms |
0 / 0 |