JavaÖÐÈçºÎµ÷ÓÃVCµÄ¶¯Ì¬¿â
ÒÔǰһƪµÄDLLΪÀý²ûÊöJavaÈçºÎµ÷Óö¯Ì¬¿â
Ŀǰ´æÔÚÒ»¸öVC±àÒëµÄ·ÇMFC¶¯Ì¬¿âDLL£¨¾ßÌåÈçºÎÉú³É·ÇMFC¶¯Ì¬¿âDLL¼ûǰһƪÎÄÕ£©£¬Ãû³ÆÎªmydll.dll£¬ÆäÖÐÓе¼³öº¯Êýmyadd£ºÐÎÈ磺int myadd(int,int)£¬ÏÖjavaÓ¦ÓóÌÐòÐèÒªµ÷Óøö¯Ì¬¿âµÄmyaddº¯Êý¡£¾ßÌåʵÏÖ²½ÖèÈçÏ£º
1¡¢±àдµ÷ÓÃmydll.dllµÄjava³ÌÐò
£¨1£©³ÌÐòtestMyDll .javaÈçÏ£º
public class testMyDll {
private native static int myadd(int a,int b);
static {
System.loadLibrary("javamydll"); //¸Ã¶¯Ì¬¿âÃû³ÆÎªÖм䶯̬¿â£¬ÓÉjava³ÌÐòʹÓ㬸ºÔðµ÷ÓÃÐèҪʹÓõĶ¯Ì¬¿â¡£
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(myadd(4,5));
}
}
£¨2£©±àÒëtestMyDll .java³ÌÐò£¬¼ì²éÊÇ·ñ´æÔÚ´íÎó¡£
javac testMyDll .java
2¡¢Éú³ÉÍ·ÎļþtestMyDll.h£¬¹©Éú³ÉÖм䶯̬¿âʹÓá£
javah testMyDll
3¡¢Éú³ÉÖм䶯̬¿âjavamydll.dll
£¨1£©Ê¹ÓÃvc¹¤¾ßÏÈÉú³Éwin32 Dynamic-Link Library¿Õ¹¤³Ì
£¨2£©½«ÉÏÃæÉú³ÉµÄÍ·ÎļþtestMyDll.hÌí¼Ó½øÈ¥£¬Í¬Ê±»¹ÐèÒªÌí¼ÓjdkÏÂincludeĿ¼ÖÐ µÄjni.h¡¢jni_md.hÕâÁ½¸öÍ·Îļþ£¬×îºÃ½«jni.hÎļþ·ÅÈ밲װĿ¼ÏÂincludeµÄĿ¼ÏÂ
£¨3£©Ìí¼Óµ÷ÓÃÐèҪʹÓõĶ¯Ì¬¿âµÄʵÏÖÎļþtestMyDll.cpp
³ÌÐòÈçÏ£º
//testMyDll.cpp
#include <windows.h>
#include "testMyDll.h"
typedef int (*padd)(int,int);
JNIEXPORT jint JNICALL Java_testMyDll_myadd
(JNIEnv * a, jclass b, jint x, jint y)
{
HINSTANCE hins = ::LoadLibrary("mydll.dll");
if(hins == NULL)
{
return 0;
}
int res;
padd pa = (padd)GetProcAddress(hins,"myadd");
if(pa != NULL)
{
res = x+y;
}
::FreeLibrary(hins);
return res;
}
£¨4£©±àÒëÉú³ÉÖм䶯̬¿âjavamydll.dll
4¡¢½«Öм䶯̬¿âjavamydll.dllºÍÐèʹÓõĶ¯Ì¬¿âmydll.dll·ÅÔÚtestMyDll.classĿ¼Ï£¬ÔËÐиÃÀà: java testMyDll
³ÌÐòÊä³ö½á¹û£º9
´ÓÉÏÊöʵÏÖ·½·¨ÖпÉÒÔ¿´µ½£¬javaÐèÒªµ÷ÓÃÒÑÓеĶ¯Ì¬¿â£¬»¹ÐèÒª×Ô¼ºÉú³ÉÒ»¸öÖм䶯̬¿â£¬¸ºÔðµ÷ÓÃת»»¡£ËùÒÔЧÂʾͻáÓеãµÍ¡£
Ïà¹ØÎĵµ£º
JavaµÄ×¢ÏúÓï¾äǰҪʹÓÃ×¢ÊÍ·û“//”¡£
ÀàÉùÃ÷¹Ø¼ü×Öclass´´½¨ÁËÒ»¸ö×Ô¶¨ÒåÀࣻÀàµÄÃû×ÖΪWelcome2£¬ÎªJavaÉùÃ÷ÀàÓï¾ä£ºclass Welcome2 {}¡£
·½·¨¹Ø¼ü×ÖmainÉùÃ÷ÁËmain()·½·¨£¬Àý£ºPublic static void main(String args[]) { ......
µÚÒ»´ÎдÕâÑùµÄ²©¿Í£¬¸Ð¾õ×Ô¼º×öµÄÓеãÏñ±Ê¼Ç£¬²»¹ý±¾À´¾ÍÊDZʼǣ¬ÎÒ×ö±Ê¼ÇÒ»°ã¶¼Êǰѱ¾À´²»ÖªµÀµÄ£¬¸Ð¾õÓÐÓõÄдÏÂÀ´£¬¶øÇÒÎÒÒ²Ò»°ãÓÃÓëÀÏʦ½Ó½üµÄÓï¾äдÏÂÀ´£¬±ÜÃâ×Ô¼ºµÄÎó½âµ¼Ö´íÎó¡£
Õâ´ÎÎÒ¿´ÁË¡¶´«ÖDz¥¿Í_ÕÅТÏé_Java»ù´¡1_Java¿ª·¢Ç°×à¡·Õâ¸ö¿Î³Ì¡£
1.ÀÏʦ˵JAVAµÄµÚÒ»¸öÌØµãÊǔһ´Î±àÒ룬µ½´¦ÔËÐГ£¬ ......
À´±±¾©ÒѾÊǽü20ÌìÁË£¬Æð³õ¸Õµ½¶ÔÎҵĴò»÷ȷʵ²»Ð¡£¬ºÜÏë»Ø¼Ò µÄ¸Ð¾õ£¬µ«ÊÇÀ´µ½ÁË´«ÖÇ£¬À´µ½ÁËÕâÀÐÄÀï¸Ð¾õºÃ¶àÁË£¬ÈËÉúµØ²»Ê죬È˵ÄÐÄÀïÒ»°ã¶¼ÊǺܹ¶ÀµÄ£¬ÏëÔÚÐÄÀïÕÒ¸öÒÀ¿¿£¬ÕÒ¸öÅóÓÑÄÜÒ»Æð³öÈ¥Íæ£¬ÁÄÌ죬ѧϰ¡£À´µ½Á˱±¾©£¬ÊÇÒ»¸öȫеÄÉú»î·½Ê½£¬Ê²Ã´¶¼Òª¿¿×Ô¼ºÁË£¬³öÃÅÕæµÄºÜÄÑ£¬ÓÈ ......
ÒÔǰ¿´¹ýÕâ±¾Ê飬×î½ü¾õµÃ×÷ÕßÓÐЩ¹Ûµã»¹ÊÇͦ¶ÔÁË£¬¼ÓÉÏЩ×Ô¼ºµÄ×ܽᣬÕûÀíÏ£¬Ï£ÍûÄܶÔÒÔºó¹¤×÷ѧϰÓÐÖ¸µ¼×÷Óá£
³ÌÐòÔ±µÄÈýÖÖ¾³½ç£º
¿ÉÄÜÍõ¹úά´ó¸ç¿´¿´ºóÈ˰ÑËûµÄÈËÉúÈý¾³½ç·¢Õ¹µÃÈçºÎ¿çѧ¿Æ£¬¶àÃÅÀ࣬һ¶¨ÈªÏÂÓÐÖª£¬±¶¸ÐÐÀο°¡£¬¹þ¹þ£¡
1¡¢³ÌÐòÔ±µÚÒ»²ã¾³½ç£ºÕâ°ï¸çÃÇÒ»°ã¶¼ÊDZÏÒµÈýÄêÒÔÄڵģ¬±È½ÏÓо«Á¦£¬¶ ......
////////////////////////////////////////////////½ÚµãÀà TreeNode.java //////////////////////////
package com.tree;
class TreeNode {//°ü·ÃÎÊȨÏÞ
long data ;
long x,y;
String adrr;
Tre ......