2012-01-04 137 views
0

我是使用JNA從Java訪問DLL的新手,所以請原諒,如果這對每個人都是顯而易見的!我需要從DLL中的類(它是用VB編寫的)訪問類中的方法,並且不能通過加載庫來實現,因爲我看到如何訪問其中的類。該DLL被稱爲CDrawControl.dll,但我需要訪問的DLL中的類是DrawCtl。所以我需要得到一個DrawCtl類的實例。 因此總而言之,如何在使用JNA的DLL中實現這種方法?使用JNA訪問包含多個類的DLL方法

I.e. 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!! 
} 

回答

0

您很可能需要使用COM包裝,請嘗試JACOB或com4j。這些項目可以掃描一個接口定義文件並生成相應的Java對象。