zoukankan      html  css  js  c++  java
  • [JNA系列]Java调用Delphi编写的Dll之实例Delphi使用PWideChar

    Delphi代码

     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调用代码

     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

  • 相关阅读:
    vue 封装数据字典项翻译方法
    vue 判断是否为移动端
    elementUI 日期控件
    Laravel 数据库backup 导入/导出
    yarn 安装出现 git 443 网络错误解决思路
    nvm简介
    nrm简介
    npm简介
    python 时间序列学习笔记
    java常见面试题——java常见笔试题
  • 原文地址:https://www.cnblogs.com/zhunian/p/5807250.html
Copyright © 2011-2022 走看看