0

我有一个工作的 C# COM 组件 dll,在 ap 命名空间中有一个名为 MyComponent 的类,该类已添加到 GAC 并成功注册。我向它添加了一个 Add() 调用,用 win32 c++ exe 对其进行了测试,并成功调用了 Add() 调用,因此一切正常。

但是我想在 WSF(windows 脚本)中测试调用我将下面的代码放在一个名为 test.wsf 的文件中,当我运行代码时出现错误:

错误:无法连接对象,在线:
WScript.ConnectObject(appos,"ap_");

为什么连不上!帮助!

<?xml version="1.0" encoding="utf-8" ?>
<package xmlns="http://schemas.microsoft.com/WindowsScriptHost">
<job>
    <?job debug="true" ?> 
    <script language="JScript">
<![CDATA[       

// Create action provider
var appos = WScript.CreateObject ("ap.MyComponent");        
WScript.ConnectObject (appos, "ap_");

// Initialise voucher provider with store and terminal id strings
appos.Add(1,99);


// Release object
appos = null;

  WScript.StdIn.Read(1);
]]>
    </script>
 </job>
</package>
4

2 回答 2

1

来自 MSDN:

将对象的事件源连接到具有给定前缀的函数。

http://msdn.microsoft.com/en-us/library/ccxe1xe6(VS.85).aspx

此方法注册回调。如果您没有回调,则无需调用此方法。

于 2009-09-27T17:22:04.970 回答
1

抱歉,我的回答不够准确。

WScript.ConnectObject (appos, "ap_");

此方法用于将脚本附加到 COM 对象事件。你没有事件,所以你不需要调用那个方法。

来自 MSDN:

将对象的事件源连接到具有给定前缀的函数。

http://msdn.microsoft.com/en-us/library/ccxe1xe6%28VS.85%29.aspx

这应该足够了:

// Create action provider
var appos = WScript.CreateObject ("ap.MyComponent");        

// Initialise voucher provider with store and terminal id strings
appos.Add(1,99);
于 2009-09-28T08:12:18.660 回答