|
分類:[C#]
2008/12/10(Wed) 18:06:15 編集(投稿者) 2008/12/10(Wed) 18:06:06 編集(投稿者)
こんにちは。 初めて書かさせて頂きます。 とても困りましたのでご教授願えればと思います。
今,ASP(VBScript)からC#で作成したCOMにオブジェクト(プロパティクラス)を渡し(参照渡し)、COM内で値を編集し呼出元で、編集された値を表示するものを作っているのですが、下記のエラーがでてしまいます。
エラー タイプ Microsoft VBScript 実行時エラー (0x800A0005) プロシージャの呼び出し、または引数が不正です。: 'mtdReturn' /ASP/TOP/include/test.inc, line 24
以下がソースになります。 [ASP/VBScript](エラー処理など細かい処理は省いてあります。)
<% Dim objCom 'COMオブジェクト Dim objComDataBean 'DataBeanオブジェクト
Set objComDataBean = Server.CreateObject("ClassLibrary.property_DataBean") objComDataBean.intNum1 = 1 objComDataBean.intNum2 = 3 objComDataBean.intNum3 = 0
Set objCom = CreateObject("ClassLibrary.Method")
Call objCom.mtdReturn(objComDataBean)←ーーーーーーーー
Set objCom = Nothing Set objComDataBean = Nothing %> Response.Write(objcomDataBean.intNum3) ************************************************************************ [COM(C#)] using System; using System.EnterpriseServices; using System.Runtime.InteropServices;
namespace ClassLibrary { /// <summary> /// プロパティクラス /// </summary> public class property_DataBean { private int mintNUM1; private int mintNUM2;
public property_DataBean() { mintNUM1 = 0; mintNUM2 = 0; }
public int intNUM1 { get{return mintNUM1;} set{this.mintNUM1 = value;} }
public int intNUM2 { get{return mintNUM2;} set{this.mintNUM2 = value;} } public int intNUM3 { get{return mintNUM3;} set{this.mintNUM3 = value;} } }
/// <summary> /// 処理クラス /// </summary> public class Method { public Method() { }
public int mtdReturn( property_DataBean prpDb) { prpDb.intNUM3 = prpDb.intNUM1 + prpDb.intNUM2; }
} }
で、COM内のmtdReturnの引数を「object prpdb」に変えれば通るのですが、 それだと、ASP側で代入した値が使用できずで困っています。 ここに書くまでにたくさん調べまして有力な情報が見つけれず、もしくは自分の理解度が足りていないのかもしれませんが、ヒントでも教えていただけると助かります。宜しくお願い致します。
|