
正文
[JNA系列]Java调用Delphi编写的Dll之实例Delphi使用PWideChar
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Delphi代码
unit UnitDll; interface uses
StrUtils, SysUtils, Dialogs; function DoBusinessWide(pvData: PWideChar): PWideChar; stdcall; implementation function DoBusinessWide(pvData: PWideChar): PWideChar; stdcall;
var
lvData: WideString;
begin
ShowMessage(pvData);
lvData := pvData;
ShowMessage(lvData);
lvData := lvData + FormatDateTime('YYYYMMDDHHMMSSZZZ',Now);
Result := PWideChar(lvData);
ShowMessage(Result);
end; end.
Java调用代码
package com.jna.demo; import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.WString; public class JnaDemo { public interface RtcPubLibrary extends Library{
RtcPubLibrary instance = (RtcPubLibrary) Native.loadLibrary("JavaDll", RtcPubLibrary.class);
public WString DoBusinessWide(char[] pvData);
} public static void main(String[] args) {
System.setProperty("jna.encoding", "GBK");
StringBuilder sBuilder = new StringBuilder();
sBuilder.append("123测试");
char[] pvData = sBuilder.toString().toCharArray();
WString lvData = RtcPubLibrary.instance.DoBusinessWide(pvData);
System.out.println("Wstring-->" + lvData);
} }
正常返回结果:Wstring-->123测试20160825160441882






