2

私の同僚は、AutoIt で COM オブジェクトを早期バインドできないと主張しています。これは本当ですか?

4

1 に答える 1

3

AutoIt は、コンパイルされてもインタープリター言語です。コンパイルの実際のプロセスは、コードをインタープリターに埋め込むだけです (一部のプリプロセッサー要素は、インクルードのように整理されます)。

その結果、コンパイル時がないため、バインディングをコンパイル時に行うことはできません。これは、以下が正常にコンパイルされ、エラーが検出されないことを意味します。

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

それを実行しても何も起こりません。$oShell.LolWut は評価されないため、エラーは発生しません。ステートメントを実行する if テストで試してみると、次のようになります。このオブジェクトで要求されたアクションは失敗しました。

編集:実装の詳細については、こちらの返信にも注意してください。

于 2011-05-05T16:35:01.760 に答える