如何将VBScript中的数组作为参数传入c#?
代码如下:
VBS:
dim tester
dim testValue
dim testValues()
ReDim testValues(1)
set tester = CreateObject( "ArrayTest.StringTester ")
testValue = "Hello World "
testValues(0) = "Hello "
testValues(1) = "World "
'call tester.TestString(testValue)
call tester.TestStringArray(testValues)
'call tester.TestStringAndStringArray(testValue,testValues)
c#代码:
public class StringTester : ArrayTest.IStringTester
{
public StringTester() { }
public void TestStringArray
(
[MarshalAs(UnmanagedType.SafeArray,
SafeArraySubType = VarEnum.VT_BSTR)]
ref String[] tvalues
)
{
String[] values = (String[])tvalues;
Console.WriteLine( "\r\n " + MethodInfo.GetCurrentMethod().Name +
"\r\n ");
Console.WriteLine(new String( '- ', 20));
for (int i = 0; i < values.Length; i++)
Console.WriteLine( "values[ " + i.ToString() + "]= " +
values[i]);
}
}
运行时vbs抛出以下错误:
无效的过程调用或参数
------解决方案--------------------声明错了? 参数不正确
------解决方案--------------------根据错误信息提示是参数的问题,你再仔细看下
------解决方案--------------------set tester = CreateObject( "ArrayTest.StringTester ")
先确定一下这个tester对象能创建出来吗?
下面都屏蔽掉