Frage

Ein Kollege von mir behauptet, dass Sie COM-Objekte nicht in der Autoit frühzeitig binden können.Ist das wahr?

War es hilfreich?

Lösung

AutoIt ist auch beim Kompilieren eine interpretierte Sprache.Der eigentliche Kompilierungsprozess besteht einfach darin, den Code in den Interpreter einzubetten (wobei einige Präprozessorelemente wie Includes sortiert sind).

Infolgedessen kann die Bindung zur Kompilierungszeit nicht durchgeführt werden, da keine Kompilierungszeit vorhanden ist.Dies bedeutet, dass das Folgende gut kompiliert wird und kein Fehler erkannt wird.

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

Führen Sie das aus und nichts wird passieren.$ oShell.LolWut wird niemals ausgewertet und es liegt kein Fehler vor.Versuchen Sie es mit dem if-Test, der die Anweisung ausführt, und Sie erhalten: Die angeforderte Aktion mit diesem Objekt ist fehlgeschlagen.

Bearbeiten: Beachten Sie auch die Antwort hier für weitere Detailsbei der Implementierung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top