0
回答
jacob 调用 C# 怎么传递数组类型参数
滴滴云服务器,限时包月0.9元,为开发者而生>>>   

C#代码如下:

 [Guid("70FE7452-0D4B-4717-8352-FEB0F6E830C1"),
    ClassInterface(ClassInterfaceType.None)]
    public class ExampleClass : IExampleClass
    {
        public ExampleClass() { }

        。。。。。。中间代码省略。。。。。

        public  string testM3(String[] strs)
        {
           // return "Java传递过来的参数为: String[]==" + strs.Length + "==" + strs[0];
            return "Java传递过来的参数为: String==" + strs ;
        }

    }

Java代码如下:

    public static void test4(){
//        Variant[] varArr = new Variant[2];
//        varArr[0] = new Variant("长天科技");
//        varArr[1] = new Variant("长天科技2");
        
        String[] aa = new String[]{"111", "222"};
        
        ActiveXComponent dotnetCom2 = new ActiveXComponent(DLL_NAME);
        Dispatch dispatch2 = dotnetCom2.getObject();
//        Variant var2 = dispatch2.call(dotnetCom2, "testM3",varArr);
        Variant var2 = dispatch2.call(dotnetCom2, "testM3",aa);
        String str2 = var2.toString();
        System.out.println(str2);
    }


错误信息如下:

com.jacob.com.ComFailException: A COM exception has been encountered:
At Invoke of: testM3
Description: 无效的参数数目。

    at com.jacob.com.Dispatch.invokev(Native Method)
    at com.jacob.com.Dispatch.invokev(Dispatch.java:625)
    at com.jacob.com.Dispatch.callN(Dispatch.java:453)
    at com.jacob.com.Dispatch.call(Dispatch.java:541)
    at my4.JavaInvokeCSharpClass.test4(JavaInvokeCSharpClass.java:81)
    at my4.JavaInvokeCSharpClass.main(JavaInvokeCSharpClass.java:93)


举报
OSC_JGesiG
发帖于1年前 0回/243阅
顶部