Доступ к методам DLL с помощью нескольких классов с использованием JNA - PullRequest
0 голосов
/ 04 января 2012

Я новичок в доступе к DLL из Java с использованием JNA, так что извините, если это очевидно для всех! Мне нужно получить доступ к методам из класса в DLL (которая была написана на VB) и не могу сделать это, просто загрузив библиотеку, так как я вижу, как получить доступ к классу внутри нее, т.е. DLL называется CDrawControl.dll, но класс внутри DLL, к которой мне нужно получить доступ, - DrawCtl. Поэтому мне нужно получить экземпляр класса DrawCtl. В общем, как мне достичь этого метода в DLL с помощью JNA?

т.е. 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 голосов
/ 05 января 2012

Скорее всего, вам нужно использовать оболочку COM, попробуйте JACOB или com4j.Эти проекты могут сканировать файл определения интерфейса и генерировать соответствующие объекты Java.

...