`
raojl
  • 浏览: 208952 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
消息通信使用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
2
0
分享到:
评论

相关推荐

    C++写的服务器与Java写的客户端通过Socket通信C++代码

    本示例探讨了如何使用C++实现服务器端,并用Java编写客户端,通过Socket进行通信。Socket编程是网络编程的基础,它允许两个不同的进程在同一个网络上进行通信。下面将详细介绍这个主题及其相关知识点。 1. **Socket...

    解决Java 和 C++ 程序之间通讯的方法(有图例,含源码)

    在跨平台的软件开发中,有时需要Java程序与C++程序进行通信,以便实现特定功能或数据共享。本文将探讨如何使用内存映射文件(Memory Mapped Files)和Java Native Interface(JNI)来解决这个问题。这种方法高效且...

    c++,java跨语言通信

    6. **消息队列(MQ)**:如RabbitMQ或Kafka等消息队列系统可以作为C++和Java之间的中间件,实现异步通信。客户端发送消息到队列,服务端从队列中消费消息,这种方式可以提高系统的可扩展性和解耦性。 7. **安全通信...

    使用C++创建java虚拟机JVM,使用JNI调用java函数.zip

    在提供的资源"使用C++创建java虚拟机JVM,使用JNI调用java函数"中,可能详细介绍了以上步骤的实际应用,包括代码示例和可能遇到的问题及解决方案。通过学习和实践这个教程,开发者可以更好地理解和掌握C++与Java之间...

    java与c++传文件程序

    本项目实现了一个基于Socket的文件传输方案,其中Java作为服务端,C++作为客户端,使得Windows环境下的文件能够在两个程序之间安全、高效地传递。以下是对这个程序设计和实现的关键知识点的详细说明: 1. **Java ...

    java调用C++动态链接库dll接口

    海康威视的综合安防管理平台8700,作为一款专业的安防解决方案,可能需要利用C++开发的高效底层库来实现特定的高性能功能,例如录像下载等复杂任务。 在这个项目中,我们看到一个名为"jnaDemo"的Maven项目。Maven是...

    收藏 Java c++通过des加密的结果不一样【已解决】

    ### Java与C++中DES加密不一致的问题及解决方案 #### 问题背景 在进行系统间的交互时,常常需要对敏感数据进行加密处理以确保数据的安全性。DES(Data Encryption Standard,数据加密标准)是一种广泛使用的对称...

    C++与Java混合编程

    3. **JNI Wrapper**:对于需要频繁交互的应用程序来说,创建一个C++库并通过JNI封装为Java类可能是更为可行的解决方案。这种方式可以将复杂的业务逻辑封装到C++中,而Java端则负责UI展示和用户交互等部分。 ### ...

    java转C++,专用工具类

    Java转C++是一种技术,主要用于将已有的Java代码转换为C++...因此,这个工具应该被视为一个起点,而不是一个完全自动化的解决方案。在实际项目中,开发者可能需要结合人工审查和修改,以确保转换后的代码质量和效率。

    专家话题:学JAVA还是C++

    JAVA设计初衷是为了提供一种跨平台的解决方案,即“一次编写,到处运行”(Write Once, Run Anywhere, WORA)的理念。JAVA具有高度的可移植性、安全性以及强大的类库支持等特点,在企业级应用、Web开发等领域有着广泛...

    基于Java的USB-HID设备通信设计与实现.pdf

    接着,文章具体介绍了解决方案——如何使用JNative框架实现在Windows平台上访问USB-HID设备,并通过API完成程序与设备的通信。在Windows系统中,访问HID设备涉及到一系列的API函数,这些函数包含在hid.dll、setupapi...

    使用后c++和java写出来的图书管理系统

    C++可以编写高效的SQL查询和数据操作,而Java可以封装这些操作为易于使用的API。 2. 图书检索:系统应支持多种检索方式,如按书名、作者、分类等条件查询。C++可以实现高效的搜索算法,Java则可以设计友好的检索...

    Java语言在西门子PLC串口通信程序中的应用

    此外,“一次编写,到处运行”的特性让Java成为了一个跨平台的解决方案,可以轻松地实现不同操作系统之间的信息传输,这为开发人员提供了一个高度灵活且低成本的开发环境。 #### 二、PLC与计算机间串口通信 西门子...

    jace的全部原代码类似于C++的ACE自适配通信框架

    ACE作为一个全面的通信框架,包含了大量的网络编程组件,如并发管理、线程池、事件调度、信号处理等,而Jace则更专注于C++和Java之间的互操作性,它的重点在于桥接不同语言,而非提供完整的网络服务解决方案。...

    java调用c++动态链接库输出

    在Visual Studio中,这通常通过构建解决方案完成。生成的文件包括`.dll`(动态链接库)和`.lib`(导入库),其中`.dll`文件将在运行时被Java程序加载,`.lib`文件用于编译Java的本地方法。 3. 调用C++动态链接库的...

    Thrift Java 服务器 客户端通信

    Thrift 是一个开源的跨语言...通过这种方式,Thrift简化了分布式系统之间的通信,并提供了高性能、可扩展的解决方案。对于Java开发者来说,理解并掌握Thrift的使用,将有助于构建更加高效和可维护的跨平台应用程序。

    unity2019使用eclipse 与java相互通信

    本教程将详细介绍如何在Unity2019中使用Eclipse与Java进行通信,实现跨平台的解决方案。由于Unity主要支持C#语言,因此我们将探讨C#与Java之间的桥梁——Java插件(Java Native Interface, JNI)。 **Unity与Java...

    使用JAVA编写网络通信程序论文.docx

    而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。 3. 多线程:多线程使应用程序可以同时进行不同的操作,...

    c++ netty.zip

    5. **C++客户端和Java服务器端TCP通讯.docx**:这个文档可能详细阐述了C++客户端如何与Java服务器建立TCP连接、发送和接收数据的过程,以及可能遇到的问题和解决方案。 6. **FtpClientDemo**:这个文件可能是C++...

    基于java的进程间异步通信系统的设计与实现

    通过阅读《基于java的进程间异步通信系统的设计与实现》这份文档,你将能深入了解如何在Java环境中构建高效、可靠的进程间通信解决方案,并了解这些技术在Android平台上的具体应用。同时,文档中的实例和代码示例将...

Global site tag (gtag.js) - Google Analytics