使用带有 WScript.CreateObject 的前缀的目的是什么?
What is the purpose of using a prefix with WScript.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
一样正常调用此方法?我是否需要对示例的源文件进行任何更改才能在没有此前缀的情况下调用此方法?
Testing_
是事件前缀,因此在您的示例中,当 Test
引发名为 Event
的事件时,则 prefix+event_name 映射到 Testing_Event
并调用该本地过程。
如果省略前缀,则不会沉没任何事件,因此如果您需要事件,则需要前缀。
这样做的理由是它允许相同的多个实例 class 通过指定不同的前缀来引发它们自己的独立事件。
有人知道在使用 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
一样正常调用此方法?我是否需要对示例的源文件进行任何更改才能在没有此前缀的情况下调用此方法?
Testing_
是事件前缀,因此在您的示例中,当 Test
引发名为 Event
的事件时,则 prefix+event_name 映射到 Testing_Event
并调用该本地过程。
如果省略前缀,则不会沉没任何事件,因此如果您需要事件,则需要前缀。
这样做的理由是它允许相同的多个实例 class 通过指定不同的前缀来引发它们自己的独立事件。