posts - 59, comments - 244, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

JNA调用window api中的MessageBox

Posted on 2010-12-23 22:53 penngo 阅读(3602) 评论(1)  编辑  收藏 所属分类: Java
用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!”的窗口。



评论

# re: JNA调用window api中的MessageBox  回复  更多评论   

2010-12-27 02:15 by Unmi
要能直接调用 user32.dll 人 MessageBox 才妙。

只有注册用户登录后才能发表评论。


网站导航: