国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
如何在Java中調(diào)用dll

我知道的有兩種方法,一種是直接用JNI,另一種是則是用Jacob(實(shí)質(zhì)上也用的是JNI)

先講講第一種方法

1.編寫java程序TestDll,注意,這個(gè)類有兩個(gè)作用,一個(gè)是用來(lái)做頭文件,另外一個(gè)作用就是通過(guò)它來(lái)調(diào)用dll
public class TestDll { 
 static
 {
  System.loadLibrary("DLLSample");//載入dll
 }
 public native static int DoubleValue(int i);//函數(shù)聲明 
}

2.編譯: javac TestDll
3.生成頭文件: javah TestDll
生成TestDll.h文件,這里面只對(duì)函數(shù)DoubleValue作了聲明
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class TestDll */

#ifndef _Included_TestDll
#define _Included_TestDll
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     TestDll
 * Method:    DoubleValue
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_TestDll_DoubleValue
  (JNIEnv *, jclass, jint);

#ifdef __cplusplus
}
#endif
#endif


4.用vc制作DLL
修改DLLSample工程,程序中添加函數(shù)DoubleValue的實(shí)現(xiàn),函數(shù)名必須用jni規(guī)定格式,可以照到.h文件里的聲

明來(lái)寫:

#include "jni_md.h"
#include "TestDll.h"

JNIEXPORT jint JNICALL Java_TestDll_DoubleValue (JNIEnv *, jclass, jint p)
{
int j = p*2;
return j;

JNIEXPORT,JNICALL,JNIEnv *, jclass請(qǐng)都不要?jiǎng)?,jint對(duì)應(yīng)是java里的int

別忘了把TestDll.h,jni.h(這個(gè)文件在jdk/include下),jni_md.h(這個(gè)文件在jdk/include/win32下)復(fù)制到VC

工程目錄中,然后編譯生成dll

5.把生成的DLLSample.dll復(fù)制到j(luò)dk/bin下(確保PATH指向了這個(gè)目錄)

6.應(yīng)用
我看到他們舉的例子都是把調(diào)用寫在了main里, 在這里我把應(yīng)用取出來(lái)放在一個(gè)servlet類中的測(cè)試的,同樣可

以得到正確結(jié)果,這里體現(xiàn)國(guó)TestDll的第二個(gè)作用,它是調(diào)用dll的一個(gè)紐帶
 ...... 
 TestDll td = new TestDll(); 
 System.out.println("result= "+td.DoubleValue(25));
 .....


注意:
     如果更改了TestDll的內(nèi)容或重使命名了這個(gè)文件,必須重新用它生成頭文件,在dll里也要做相應(yīng)修改,

因?yàn)楸仨氁蚸ava里面的聲明一致才行


----------------------------------------
本文隨寫,若有什么錯(cuò)誤,請(qǐng)多多指出,謝謝



本文引用通告地址: http://blog.csdn.net/Jzealot/services/trackbacks/458562.aspx
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JAVA調(diào)用動(dòng)態(tài)庫(kù)方法說(shuō)明
JNI 實(shí)例調(diào)用
Java調(diào)用dll與C++通信(包括.dll文件的制造)
jni中 對(duì)c++類的重新封裝
AndroidJni開(kāi)發(fā)
JNA—JNI終結(jié)者
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服