新建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