六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 83|回复: 0

消息通信使用C++,业务操作使用JAVA的解决方案

[复制链接]

升级  93.33%

52

主题

52

主题

52

主题

秀才

Rank: 2

积分
190
 楼主| 发表于 2013-1-27 04:40:09 | 显示全部楼层 |阅读模式
消息通信使用C++,业务操作使用JAVA的解决方案----应用Jawin

Jawin(Java/Win32)是一个免费的、开放源代码的体系结构,用于 Java 组件和通过 Windows COM 对象或 Windows DLL 来公开的组件之间的互操作。Jawin 允许 Java 应用程序调用任何基于 COM 或 DLL 的遗留代码,而不需要编写任何 JNI 代码。您的代码将能与诸如 Microsoft Office 套件等可编写脚本的应用程序交互,调用诸如 Microsoft 的基于 COM 的 XML 解析器和工具等可编写脚本的逻辑组件,以及访问诸如 Windows 注册表、安全 API 和事件日志等 Win32 API 特性。Jawin 包括一个用于可编写脚本的 COM 组件的代码生成器。该代码生成器读取类型库,并自动产生从 Java 应用程序调用该组件所需要的Java存根(stub)。
http://sourceforge.net/projects/jawinproject/

使用方法:
解压后,将bin/jawin.dll拷贝到System32目录下,然后将lib/jawin.jar和lib/jawin-stubs.jar拷贝到jdk的lib/ext目录下

其自带的demo了
/*
* HelloDll.java -
*
* This file is part of the Jawin Project: http://jawinproject.sourceforge.net/
*
* Please consult the LICENSE file in the project root directory,
* or at the project site before using this software.
*/
/* $Id: HelloDll.java,v 1.3 2004/06/14 20:16:38 arosii_moa Exp $ */
package demos;
import org.jawin.COMException;
import org.jawin.FuncPtr;
import org.jawin.ReturnFlags;
/**
* Demo that uses the Win32 MessageBoxW API-method.
*
* @version     $Revision: 1.3 $
* @author      Stuart Halloway, http://www.relevancellc.com/halloway/weblog/
*/
public class HelloDll {
public static void main(String[] args) throws Exception {
  FuncPtr msgBox = null;
  try {
   msgBox = new FuncPtr("USER32.DLL", "MessageBoxW");
   msgBox.invoke_I(0, "Hello From a DLL", "From Jawin", 0, ReturnFlags.CHECK_FALSE);
  } catch (COMException e) {
   // handle exception
   e.printStackTrace();
   throw e;
  } finally {
   if (msgBox != null) {
    try {
     msgBox.close();
    } catch (COMException e) {
     // handle fatal exception
     e.printStackTrace();
     throw e;
    }
   }
  }
}
}

注意运行是 要加demos.HelloDll
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表