Java調用dll的實現,JNA框架


新建win32 dll 應用程序 的代碼,然後將生產的dll拷貝的到Java項目的目錄下,不是bin目錄,而是在與bin平行的目錄,即有.project 文件的目錄

// TestDll2.cpp : 定義 DLL 應用程序的導出函數。

#include "stdafx.h"  
#include "stdio.h"  


#define MYLIBAPI  extern   "C"     __declspec( dllexport )    

#include "DemoDll.h"


void sayHello(char * name){  
    printf("C Code Start...\n");  
    printf("Hello! Mr %s.\n",name);  
    printf("C Code End.\n");  
}  

手動增加.h文件,如下

#ifdef MYLIBAPI
#else
#define  MYLIBAPI  extern "C" __declspec(dllimport)    
#endif


MYLIBAPI void sayHello(char * name); //添加函數聲明


Java端代碼

package dcec.rdd;
import com.sun.jna.Library;
import com.sun.jna.Native;

public class HelloWorld {
	public interface CLibrary extends Library{
		//接口實例
        CLibrary INSTANCE = (CLibrary)Native.loadLibrary("TestDll2",CLibrary.class);

        // 與C代碼映射的函數
        public void sayHello(String name);
	}

	public static void main(String[] args) {
        System.out.println("Hello,Java world.");
		CLibrary.INSTANCE.sayHello("Hello, JNA World.");
	}
}

//運行結果

Hello,Java world.
C Code Start...
Hello! Mr Hello, JNA World..
C Code End.
===============================================================================================================================

採用MFC製作DLL



發佈了16 篇原創文章 · 獲贊 5 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章