2012-01-04 28 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オブジェクトを生成できます。

関連する問題