0

GAC に追加され、正常に登録された ap 名前空間に MyComponent というクラスを持つ、動作中の C# COM コンポーネント dll があります。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 に答える