如何在AutoIt中提前绑定COM对象?
我的一位同事声称您无法在 AutoIt 中提前绑定 COM 对象。这是真的吗?
A colleague of mine claims that you cannot early-bind COM objects in AutoIt. Is this true?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
即使编译后,AutoIt 也是一种解释性语言。编译的实际过程只是将代码嵌入到解释器中(一些预处理器元素像包含一样排序)。
因此,绑定无法在编译时完成,因为没有编译时。这意味着以下内容将正常编译并且不会检测到错误。
运行它,什么也不会发生。 $oShell.LolWut 永远不会被评估,因此不会出现错误。尝试使用执行语句的 if 测试,您会得到:对此对象请求的操作失败。
编辑:另请注意此处的回复,了解有关实施的更多详细信息。
AutoIt is an interpreted language even when compiled. The actual process of compiling is simply embedding the code in the interpreter (with some preprocessor elements sorted out like includes).
As a result, binding can not be done at compile time, as there is no compile time. This means that the following will compile fine and no error will be detected.
Run that and nothing will happen. $oShell.LolWut will never be evaluated and so there is no error. Try it with the if test executing the statement and you get: The requested action with this object has failed.
Edit: Also note the reply here for more details on implementation.