在WScript.CreateObject中使用前缀的目的是什么?

时间:2017-07-12 15:36:37

标签: c++ vbscript com createobject

有人知道使用WScript.CreateObject时使用前缀的实际目的吗?

我有一个C ++ COM项目示例,它有一个VB脚本文件,用于调用C ++ dll项目中的COM对象方法。

Function Testing_Event(Text)
  WScript.Echo CStr(Text)
End Function

Dim Test
Set Test = WScript.CreateObject("Hello.World", "Testing_")
Test.Method("Hello World!")

我还发现另一个answer具有相同的带前缀的调用行为。

上面的VB脚本工作正常,但是如果我删除了前缀,wscript会运行,但输出就像以前一样。

任何人都可以在这里解释一下Testing_前缀的用法是什么?是否可以停止使用该前缀并像Hello.World一样调用此方法?我是否需要对示例的源文件进行任何更改才能在没有此前缀的情况下调用此方法?

1 个答案:

答案 0 :(得分:2)

Testing_是一个事件前缀,因此在您的示例中Test引发一个名为Event的事件,然后前缀+ event_name 映射到Testing_Event并调用本地程序。

如果省略前缀,则不会有任何事件沉没,因此如果您需要事件,则需要前缀。

这样做的理由是它允许同一个类的多个实例通过指定不同的前缀来引发它们自己的独立事件。