C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 53 を表示中)
■29564 / )  VbScriptからCOM+(C#)へのオブジェクト渡し
□投稿者/ iSyouta (1回)-(2008/12/10(Wed) 17:58:22)

分類:[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側で代入した値が使用できずで困っています。
ここに書くまでにたくさん調べまして有力な情報が見つけれず、もしくは自分の理解度が足りていないのかもしれませんが、ヒントでも教えていただけると助かります。宜しくお願い致します。


返信 編集キー/


管理者用

- Child Tree -