使用JNA访问包含多个类的DLL方法

时间:2012-01-04 14:56:52

标签: dll jna nativelibrary

我是使用JNA从Java访问DLL的新手,所以请原谅我这对每个人来说都是显而易见的!我需要从DLL中的一个类(用VB编写)访问方法,并且不能通过加载库来实现这一点,因为我看到如何访问其中的类I.e. DLL被称为CDrawControl.dll,但我需要访问的DLL中的类是DrawCtl。所以我需要获得DrawCtl类的实例。 总而言之,如何使用JNA在DLL中实现此方法?

即。 CDrawControl.DrawCtl.SaveFile()

这可能是我想念的非常简单。

public class ReadDLL {
    public interface ChemDrawCtl12 extends Library {
    CDrawControl INSTANCE = (CDrawControl) Native.loadLibrary(
            (Platform.isWindows() ? "CDrawControl" : "CDrawCtl12LinuxPort"),
            CDrawControl.class);

    void DrawCtl.SaveAs(); // this is wrong but shows what I am trying to do!!
}

1 个答案:

答案 0 :(得分:0)

您很可能需要使用COM包装器,尝试使用JACOB或com4j。这些项目可以扫描接口定义文件并生成相应的Java对象。