Delphi代碼app
1 unit UnitDll; 2 3 interface 4 5 uses 6 StrUtils, SysUtils, Dialogs; 7 8 function DoBusinessWide(pvData: PWideChar): PWideChar; stdcall; 9 10 implementation 11 12 function DoBusinessWide(pvData: PWideChar): PWideChar; stdcall; 13 var 14 lvData: WideString; 15 begin 16 ShowMessage(pvData); 17 lvData := pvData; 18 ShowMessage(lvData); 19 lvData := lvData + FormatDateTime('YYYYMMDDHHMMSSZZZ',Now); 20 Result := PWideChar(lvData); 21 ShowMessage(Result); 22 end; 23 24 end.
Java調用代碼ide
1 package com.jna.demo; 2 3 import com.sun.jna.Library; 4 import com.sun.jna.Native; 5 import com.sun.jna.WString; 6 7 public class JnaDemo { 8 9 public interface RtcPubLibrary extends Library{ 10 RtcPubLibrary instance = (RtcPubLibrary) Native.loadLibrary("JavaDll", RtcPubLibrary.class); 11 public WString DoBusinessWide(char[] pvData); 12 } 13 14 public static void main(String[] args) { 15 System.setProperty("jna.encoding", "GBK"); 16 StringBuilder sBuilder = new StringBuilder(); 17 sBuilder.append("123測試"); 18 char[] pvData = sBuilder.toString().toCharArray(); 19 WString lvData = RtcPubLibrary.instance.DoBusinessWide(pvData); 20 System.out.println("Wstring-->" + lvData); 21 } 22 23 }
正常返回結果:Wstring-->123測試20160825160441882測試