集成Windows本地操纵到Eclipse RCP程序中[Java编程]
本文“集成Windows本地操纵到Eclipse RCP程序中[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Windows 利用程序非常丰富,而有时我们的 Eclipse RCP 程序所需求的一些功效已经有一些现有的 Windows 本地利用程序的实现,我们但愿可以在我们的 RCP 程序中重用这些功效.一种最简单的重用办法就是直接在我们 RCP 窗口中嵌入本地利用程序窗口.要使得一个 Windows 本地利用程序可以在我们的 RCP 程序中运行,我们可以利用 Windows 供应的 reparent 机制.操纵这种机制实现窗口嵌入的主要历程是:首先要在我们的程序中启动要嵌入的 Windows 程序,然后我们设法获得程序启动后的主窗口句柄,再将我们RCP程序的窗口设置成 Windows 程序主窗口的父窗口.
由于我们需求启动 Windows 本地程序并且获得它的主窗口句柄,这些只能利用 Windows 本地调用来实现,所以我们先用 Windows 本地调用实现呼应的功效,然后我们再用 JNI 举行调用.
JNI 简介
JNI 的全称是 Java Native Interface,JNI 尺度是 Java 平台的一部份,它用来将 Java 代码和其他语言写的代码举行交互.下面简单介绍一下利用 JNI 的步骤:
编写带有 native 声明的 java 办法
这里以 HelloWorld 为例:
清单 1. Hello World Java 代码
public class HelloWorld {
static {
System.loadLibrary(“helloworld”)}
}
public native void print()}
public static void main(String[] args) {
HelloWorld hello = new HelloWorld()}
hello.print()}
}
}
编译 Java 代码以及生成 c/c++ 头文件:
先编译这个 java 类: javac HelloWorld.java,然后再生成扩大名为 .h 的头文件,java 供应了号令 javah 来生成头文件:javah –jni HelloWorld,下面的清单显示了生成的头文件的内容:
清单 2. Hello World C++ 头文件
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>}
/* Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: print
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_print (JNIEnv *, jobject)}
#ifdef __cplusplus
}
#endif
#endif
以上是“集成Windows本地操纵到Eclipse RCP程序中[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |