91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 975KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-10
  • 語言: Java
  • 標簽: JNA??dll??java??

資源簡介

實例中演示了各種參數形式的DLL函數調用,如:基本數據類型、基本數據類型的指針和引用、結構體、結構體的指針和引用、函數指針和回調函數、字符串指針、輸入數組、輸出數組等,非常實用。

資源截圖

代碼片段和文件信息

/************************************************
?*?Zhongguancun?East?Road?#95?Room?505
?*?2011-07-18?
?************************************************/

package?CallMain;

import?com.sun.jna.Library;
import?com.sun.jna.Callback;
import?com.sun.jna.Native;
import?com.sun.jna.Structure;
import?com.sun.jna.Pointer;
import?com.sun.jna.ptr.IntByReference;
import?com.sun.jna.ptr.FloatByReference;

public?class?CallMain?
{
//字符轉換
public?static?int?StringToFixedBytes(String?str?byte?by[])
{
byte?byTemp[]?=?str.getBytes();
int?strLen?=?byTemp.length;
int?byLen?=?by.length;

if(strLen?>?byLen)
return?-1;

if(strLen==0)
for(int?i=0;?i by[i]?=?‘\0‘;

System.arraycopy(byTemp?0?by?0?strLen);
return?strLen;
}

//字符轉換
public?static?String?BytesToString(byte?by[])
{
String?str?=?new?String(by);
???? int?pos?=?str.indexOf?(‘\0‘);
???? if(pos!=-1)
???? str?=?str.substring?(0?pos);
return?str;
}

//簡單結構
public?static?class?Rect?extends?Structure
{
public?static?class?ByReference?extends?Rect?implements?Structure.ByReference?{};
public?static?class?ByValue?extends?Rect?implements?Structure.ByValue{};
public?int?nLong;
????????public?int?nShort;
????}

//包含字符數組的結構
public?static?class?SerialNum?extends?Structure
{
public?static?class?ByReference?extends?SerialNum?implements?Structure.ByReference?{};
????????public?static?class?ByValue?extends?SerialNum?implements?Structure.ByValue{};
????????
public?int?id;
????????public?byte?msg[]?=?new?byte[32];
????????
????????public?SerialNum(){
???????? this.allocateMemory();
????????}
????????
????????public?int?setMSG(String?str){???????
???????? return?StringToFixedBytes(str?msg);
????????}
????????
????????public?String?getMsg(){
???????? return?BytesToString(msg);
????????}
????}

//用于二維數組
public?static?class?Char32msg?extends?Structure
{
// public?static?class?ByReference?extends?Char32msg?implements?Structure.ByReference?{};
//??????public?static?class?ByValue?extends?Char32msg?implements?Structure.ByValue{};
???????
????????public?byte?msg[]?=?new?byte[32];
????????
????????public?Char32msg(){
???????? this.allocateMemory();
????????}
????????
????????public?String?getMsg(){
???????? return?BytesToString(msg);
????????}
}

//用于帶數組指針的結構
public?static?class?Staff?extends?Structure{
public?static?class?ByReference?extends?Staff?implements?Structure.ByReference?{};

public?SerialNum.ByReference?pSN;
public?int?nCount;

public?Staff()?{nCount=0;}?
????public?SerialNum.ByReference[]?toArray()?{
????????return?(SerialNum.ByReference[])?pSN.toArray(nCount);
????}
}

//簡單回調接口
public?static?interface?CustumPlus?extends?Callback?{
public?abstract?int?callback(int?aint?b);
}

//簡單回調實現
public?static?class?SimpleAdd?implements?CustumPlus{
public?final?int?callback(int?a?int?b){
return?a+b;??
????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????347??2011-07-13?14:06??JNA_Demo\My?JNA?Demo\CallDll\.classpath

?????文件????????383??2011-07-13?14:05??JNA_Demo\My?JNA?Demo\CallDll\.project

?????文件????????498??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$AssignMethod$ByReference.class

?????文件????????575??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$AssignMethod.class

?????文件????????585??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$Char32msg.class

?????文件????????239??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$CustumPlus.class

?????文件???????1165??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$DispLastSN.class

?????文件???????2036??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$DllInterface.class

?????文件????????399??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$OnAssignSN.class

?????文件????????466??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$Rect$ByReference.class

?????文件????????450??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$Rect$ByValue.class

?????文件????????496??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$Rect.class

?????文件????????486??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$SerialNum$ByReference.class

?????文件????????470??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$SerialNum$ByValue.class

?????文件????????920??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$SerialNum.class

?????文件????????521??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$SimpleAdd.class

?????文件????????470??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$Staff$ByReference.class

?????文件????????835??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain$Staff.class

?????文件???????7503??2011-07-22?15:06??JNA_Demo\My?JNA?Demo\CallDll\bin\CallMain\CallMain.class

?????文件?????131072??2011-07-20?17:07??JNA_Demo\My?JNA?Demo\CallDll\DllTest.dll

?????文件?????948100??2011-05-12?14:09??JNA_Demo\My?JNA?Demo\CallDll\jna.jar

?????文件???????9287??2011-07-22?15:09??JNA_Demo\My?JNA?Demo\CallDll\src\CallMain\CallMain.java

?????文件??????18824??2011-07-18?18:12??JNA_Demo\My?JNA?Demo\DllTest\DllTest\DllTest.aps

?????文件????????328??2008-04-07?15:51??JNA_Demo\My?JNA?Demo\DllTest\DllTest\DllTest.clw

?????文件???????6034??2011-07-22?15:08??JNA_Demo\My?JNA?Demo\DllTest\DllTest\DllTest.cpp

?????文件????????425??2011-07-20?17:07??JNA_Demo\My?JNA?Demo\DllTest\DllTest\DllTest.def

?????文件???????4167??2008-04-07?15:51??JNA_Demo\My?JNA?Demo\DllTest\DllTest\DllTest.dsp

?????文件????????539??2008-04-07?15:51??JNA_Demo\My?JNA?Demo\DllTest\DllTest\DllTest.dsw

?????文件???????2682??2011-07-20?17:07??JNA_Demo\My?JNA?Demo\DllTest\DllTest\DllTest.h

?????文件??????53760??2008-05-13?16:26??JNA_Demo\My?JNA?Demo\DllTest\DllTest\DllTest.opt

............此處省略24個文件信息

評論

共有 條評論