目前,java调用C#内的普通函数(只有int,double,返回值为int等),没有问题。由于有一组数据需要传给dll处理,需要向C#传递List<String>参数的函数;
而在调用时就出现运行错误(编译没问题,哈哈 指针什么的java不太认识,也与C#的CLR有关吧)。
另外,函数处理完了后,还得向Java返回List<String>对象。
如何处理呢?目前,暂定使用文件进行参数传递,共享内存文件的还未施行。
如果List参数能正常处理的话,工作会处理会快些,也方便不少。所以,目前C#中取得jobjectarray的基本类还没有,
而jobjectarray与jenv如何关联上呢。请专家和Java高手帮忙。另外,别建议我使用C++ dll封装下C# dll噢。
上次,调试Managed C++没有通过,无法使C++ dll和C# dll整合在一起,郁闷了一阵子。
能帮我解决Managed C++ 和C# dll 导出 XXX.netmodule也行,呵呵~~Java 调用C#过程,参考如下:
Java -> JNI -> C++ dll  <== Managed C++ ==> C# dll

解决方案 »

  1.   

    今天忙得上班都没时间看看,昨天晚上到sun的论坛转了一大圈,目前也没人能明确解决啊。倒是C#进程中调用Java类的sample,我倒研究过了。基本没问题。
    谁需要的话,可以共享。Java调用C#的,对象参数好像不太容易哦。
    什么IntPtr,[DllImport("kernel32.dll")] 还得靠底层OS帮忙;GlobalReference gref。
    原理:应该是C#申请使用的内存地址,传递到java内,然后使用java类型合适转换下;同样,java的对象必须
    在c#内能使用其class,再进行转化。两者之间,通过内存地址进行交换处理。
      

  2.   

    List <String>是范型,这个字符串是不固定的啊,它可以是任何类型
      

  3.   


    我是说,函数参数能传递List就行了,里面存放的就是String型。
    不是"这个字符串",而实际是字符串数组,在C#内得到数据并处理就行。当然可以放自己定义的类对象了,那样只会比处理String更难。
    所以,给了个简单处理List<String>参数就足够了。重点是需要能处理对象参数,再返回对象到java里,剩下的都好办。
      

  4.   

    List <String>是范型,这个字符串是不固定的啊,它可以是任何类型
      

  5.   

    我也遇到此問題了. 請問有人知道如何解決嗎?目前我用 Array 實現了, 但是很麻煩. 如果能直接用 List<T> 就好了.