2009-09-27 13 views
0

我有一個工作的C#COM組件dll,在ap名稱空間中有一個名爲MyComponent的類,它被添加到GAC併成功註冊。我給它添加了一個Add()調用,用一個win32 C++ exe測試了它,併成功調用了Add()調用,所以它的所有工作。在WSH窗口腳本中測試COM調用

但是我想測試在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> 

回答

1

從MSDN:

Connects the object's event sources to functions with a given prefix.

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

此方法註冊了回調。如果你沒有回調,你不需要調用這個方法。

+0

我只是添加了前綴的隨機字符串 「AP_」;這是否需要成爲特別的東西?這似乎是在這兩行倒塌:'var appos = WScript.CreateObject(「ap.MyComponent」); WScript.ConnectObject(appos,「ap _」);'我沒有任何事件,只有一個名稱空間(ap)和一個名爲MyComponent的類實現了一個接口。 – David 2009-09-27 18:02:45

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);