Как рано связывать com-объекты в autoit

Мой коллега использует AutoIt для разработки и утверждает, что вы не можете рано связывать com-объекты - это правда?

1 ответ

Решение

AutoIt - интерпретируемый язык, даже когда он компилируется. Фактический процесс компиляции - это просто встраивание кода в интерпретатор (с некоторыми элементами препроцессора, отсортированными как include).

В результате привязка не может быть выполнена во время компиляции, так как нет времени компиляции. Это означает, что следующее будет нормально скомпилировано и ошибки не будет обнаружено.

$oShell = ObjCreate("shell.application")
If False Then ConsoleWrite($oShell.LolWut & @LF)

Запустите это, и ничего не произойдет. $oShell.LolWut никогда не будет оцениваться, поэтому ошибок нет. Попробуйте выполнить тест if, выполнив инструкцию, и вы получите: Запрошенное действие с этим объектом не выполнено.

Изменить: Также обратите внимание на ответ здесь для более подробной информации о реализации.

Другие вопросы по тегам