JAVA如何調(diào)用C或者C生成的dll.doc

ID:62033596

大小:199.00 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2021-04-15

JAVA如何調(diào)用C或者C生成的dll.doc_第1頁(yè)
JAVA如何調(diào)用C或者C生成的dll.doc_第2頁(yè)
JAVA如何調(diào)用C或者C生成的dll.doc_第3頁(yè)
JAVA如何調(diào)用C或者C生成的dll.doc_第4頁(yè)
JAVA如何調(diào)用C或者C生成的dll.doc_第5頁(yè)
資源描述:

《JAVA如何調(diào)用C或者C生成的dll.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、JAVA如何調(diào)用C或者C++生成的dll本文為在32位 Windows平臺(tái)上實(shí)現(xiàn)?。蔭va本地方法調(diào)用dll的示例。由于對(duì)C語(yǔ)言不是很熟悉,有部分內(nèi)容摘自網(wǎng)絡(luò)。第一步、編寫(xiě)java文件package com。ztsoft。jni;publicclassMyDll{stat(yī)ic{System.loadLibrary("MyDll”);}?publicnativestatic String HelloWord();?publicnativestat(yī)icStringHelloWord(int num);}第二步、編譯生成h文件1、編譯D:\MyEclipse 6.5M1 Blueworkspa

2、cejavaWorkSpacesrc〉javaccom/ztsoft/jni/MyDll.java(生成MyDll。class位于jni目錄下)2、生成h文件D:MyEclipse6.5M1BlueworkspacejavaWo(hù)rkSpacesrc>javahcom.ztsoft.jni。MyDll(生成com_ztsoft_jni_MyDll.h這個(gè)文件位于src目錄下)/*DONOTEDITTHISFILE -itismachine generated*/#include〈jni。h>/*Header for classcom_ztsoft_jni_MyDll*/#ifnd

3、ef _Included_com_ztsoft_jni_(kāi)MyDll#define _Included_com_ztsoft_jni_MyDll#ifdef__cplusplusextern"C" {#endif/* * Class: com_ztsoft_jni_MyDll *Method:HelloWord* Signature:()Ljava/lang/String;*/JNIEXPORTjstring?。蔔ICALLJava_com_ztsoft_jni_(kāi)MyDll_HelloWord__(dá)(JNIEnv *, jclass);/** Class: com_ztsoft_jni_MyD

4、ll *Method:  HelloWord *Signature:(I)Ljava/lang/String;*/JNIEXPORTjstringJNICALLJava_com_ztsoft_jni_MyDll_HelloWo(hù)rd__I?。ǎ蔔IEnv*,jclass,jint);#ifdef__cplusplus}#endif#endif第三步、編寫(xiě)C++文件在具體實(shí)現(xiàn)的時(shí)候,我們只關(guān)心兩個(gè)函數(shù)原型。JNIEXPORTjstringJNICALLJava_com_ztsoft_jni_M(jìn)yDll_HelloWo(hù)rd__ (JNIEnv*, jclass);JNIEXPORTjstring

5、JNICALLJava_com_ztsoft_jni_MyDll_HelloWord__I(JNIEnv*,?。阠lass, jint);以下我用的是vs2005編寫(xiě)c程序。1、選擇VisualC++ —>Win32—〉Win32項(xiàng)目(填寫(xiě)項(xiàng)目名稱(chēng)等)點(diǎn)擊確定.這一步選擇DLL,勾選空項(xiàng)目,點(diǎn)擊完成。?然后右擊右側(cè)的源文件,添加新相然后再將com_ztsoft_jni_MyDll。h文件添加到C++的頭文件中(先拷貝到工程下,然后在引入現(xiàn)有項(xiàng))然后拷貝原函數(shù)到MyDll.cpp文件中#include"com_ztsoft_jni_(kāi)MyDll.h"JNIEXPORTjstringJNICAL

6、LJava_com_ztsoft_jni_M(jìn)yDll_HelloWord__(JNIEnv?。?,jclass){?}JNIEXPORTjstringJNICALLJava_com_ztsoft_jni_MyDll_HelloWord__I(JNIEnv*, jclass,?。辏椋睿簦﹞?}注意:一定要把JDK中的include文件夾中(和它下面的win32)的幾個(gè)頭文件拷貝到C++工程文件夾中。然后引入。否則編譯的時(shí)候出現(xiàn)類(lèi)似的錯(cuò)誤根據(jù)頭文件的路徑,修改com_ztsoft_jni_(kāi)MyDll.h修改jni_md。h文件的引入根據(jù)實(shí)際情況,修改MyDll.cpp文件.第四步、編譯生成DLL

7、選擇build-〉rebuild?all對(duì)所寫(xiě)的程序進(jìn)行編譯。點(diǎn)擊build—>build?MyDll。DLL生成DLL文件。位于debug目錄下,將它放置你的jdk的bin目錄,或者system32下.然后編寫(xiě)main方法測(cè)試即可。/***測(cè)試dll方法*?。纏aramargs?。?publicstaticvoidmain(String[]args){?System。out.println(MyDll.HelloWor

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。
关闭