首页新闻找找看学习计划

如何使用jna调用dll(delphi),并能返回字符串.

0
悬赏园豆:20 [待解决问题]

工作中需要用java调用dll,并获取信息.我现在可以调用dll了,可是不能通过返回参数得到信息.

代码如下:

1 function JavaCall(InS, OutS: PChar): Integer; stdcall;
2 var
3   s: string;
4 begin
5   ShowMessage('您传入的内容:'+InS);
6   s := 'DLL返回内容';
7   OutS := PChar(s);
8   Result := 999;
9 end;

 

    public interface CLibrary extends Library {
        CLibrary INSTANCE = (CLibrary) Native.loadLibrary("testdll", CLibrary.class); // 引入库文件

        public int JavaCall(String s1, byte[] s2);
    }
    
    public static void main(String[] args) {
        byte[] aaa = new byte[100];
        System.out.println("java call dll result = "+CLibrary.INSTANCE.JavaCall("ttttt", aaa));
        System.out.println("aaa="+new String(aaa));
    }

可以得到返回值:999

但是不能通过返回参数,得到"DLL返回内容".

请问如何处理

老笨狼的主页 老笨狼 | 初学一级 | 园豆:96
提问于:2012-08-07 15:45
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册