クラシックasp用のcomオブジェクトを作成する必要があります。これは、.netアセンブリを作成し、comと「相互運用」できるため、次のような.netアセンブリの作成に進みました。-
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using System.Web;
namespace LMS
{
[ComVisible(true)]
public class Calc
{
public int Add(int val1, int val2, out string[] outputz)
{
int total = val1 + val2;
outputz = new string[5];
outputz[1] = "test2";
outputz[2] = "test3";
outputz[3] = "test4";
outputz[4] = "test5";
return total;
}
}
}
次に、私は通常のビルドを実行しました:gacutil&RegAsm
そして私の古典的なaspページで私はこれを持っていました:-
Dim params
dim objPassport3
set objPassport3 = Server.CreateObject("LMS.Calc")
comTest2 = objPassport3.Add(1,1,params)
そして私はエラーを受け取ります:
エラータイプ:Microsoft VBScriptランタイム(0x800A0005)無効なプロシージャ呼び出しまたは引数:'追加'/eduservice/test.asp、25行目
しかし、配列を使用しないようにアセンブリを変更すると、すべて正常に機能し、アセンブリとの間で通常の文字列またはintをクラシックaspに送信することもできます。私はたくさんのことを読みましたが、同じエラーが発生します、
誰もが以前にこれを試し、成功しました、あなたの解決策を共有してください
ありがとう