2009-06-13 12 views
5

私は自分のアプリケーションにスクリプト機能を実装しようとしています。私は以下のコードを使用しています。MSScriptControlオブジェクトをVBScriptに公開するときに '指定されたキャストが無効です'

しかし、エラーSpecified cast is not valid.script.AddObject(...)でアプリケーションがクラッシュしたが、私はここに欠けているステップがあります:私は新しいApiオブジェクトをインスタンス化するたびに、アプリケーションが(P少しテストのことを)やめることになっていますか?

public class ApiExposed 
{ 
    public string ModuleName; 

    public void Exit() 
    { 
     System.Environment.Exit(0); 
    } 
} 
public class Api 
{ 
    ScriptControlClass script; 
    ApiExposed ApiObj; 

    public Api() 
    { 
     ApiObj = new ApiExposed(); 

     script = new ScriptControlClass(); 
     script.Language = "VBScript"; 
     script.AddObject("tbapi", (object)ApiObj, true); 

     script.Eval("tbapi.Exit()"); 
    } 
} 

答えて

3

私の推測では、ApiExposedクラスはCOM表示ではありません.VBScriptがCOMと対話する必要があります。

1

これにも同様の問題がありました。

クラスとメソッドに[ComVisible(true)]を必ず使用してください。 また、クラスをPUBLICにしてください!

関連する問題