用JNA調用C/C++,很方便,寫了個很簡單的例子。
例子是使用Eclipse CDT + MinGW開發的:
C代碼,hello.c
#include
<
windows.h
>
#include
"
stdio.h
"
void
say(){
MessageBox (NULL, TEXT (
"
你好, Windows!
"
), TEXT (
"
HelloMsg
"
),
0
);
}
將hello.c編譯成libDLL2.dll,放進java的項目文件夾中,java調用方式
Java代碼,dll.java
public
class
Dll {
public
interface
TestDll1
extends
Library {
TestDll1 INSTANCE
=
(TestDll1)Native.loadLibrary(
"
libDLL2
"
, TestDll1.
class
);
public
void
say();
}
public
static
void
main(String[] args) {
TestDll1.INSTANCE.say();
}
}
先寫一個接口
TestDll1映射C的方法,再經過這接口調用
say(),在eclipse中編譯運行這個java代碼,能夠看到彈出「你好,window!」的窗口。