如何从Java访问COM自动化DLL?

时间:2018-07-23 01:37:24

标签: java dll automation com jna

我有一个第三方应用程序,其中包括一组DLL库,这些库提供对应用程序的数据和命令的访问。

我想使用Java访问这些DLL,以便检索某些特定数据并将其写入文件。

虽然之前曾提出过类似的问题,但我还没有找到任何对我有帮助的问题(我是Java的绝对初学者)。我怀疑这可以做到 JNA但需要一些指导。可能超出了我的新手能力,但我想尝试。

我需要访问几个DLL文件,每个DLL文件都包含多个库,这些库提供对提供各种功能的对象的访问。

我需要获得对这些DLL的访问权,从它们实例化对象,并获得对所提供的方法和变量的访问权。有没有人知道的相对简单的Java解决方案?

谢谢

编辑:我添加了示例J ++代码,以说明我需要在Java中执行的操作。 J ++首先需要为每个必需的DLL文件创建COM包装器。

import dll1.*;
import dll2.*;
import dll3.*;
import com.ms.com.*;

public class Class1 {

    public static void main(String[] args) {

        // Create an application object
        dll3.Application app = new dll3.Application();

        // Use the getDataManager() method on the  application
        // object to get the DataManager object (which in turn is
        // used to create the price object)  
        DataManager dm;

        try {
            dm = app.getDataManager();
        } catch (Exception e) {
            System.out.println(e);
            return;
        }

        // Create the price data object using the CreateOb method of the
        // DataManager object
        PriceOb dp = (PriceOb) dm.CreateOb("Price");

        // Set the requests parameters and make the request
        dp.setVar1("abc");
        dp.setVar2("xyz");
        dp.Request();

0 个答案:

没有答案