0

私はJNAインフラストラクチャを初めて使用しますが、要点は、ライブラリ「someLib」があり、それに一致するJavaインターフェースを作成することだと思います。それなら、私はそれを「ただ」使うことができますよね?

しかし、問題は、何をモックする必要があるのか​​ わからないことです。具体的には、機能が必要なクラスがいくつかあります。

私の C++ ライブラリに 'AdvancedString' オブジェクトがあり、内部で他のクラスを使用しているとします。

つまり、次のようになります。

class B { ... };

class AdvancedString { 
  private: 
    B b;

  public:
    AdvancedString doSomething () { ... }

};

そして、Java コードで AdvancedString.doSomething () と言って、それを機能させる必要があります。これは、AdvancedString クラスのインターフェイスを作成する必要があることを意味しますか?

public interface AdvancedStringInterface extends StdCallLibrary {
  public AdvancedStringInterface doSomething ();
}

それは合理的に思えますか?それとも私は何かを逃していますか。あなたが与えることができる洞察をありがとう!

4

1 に答える 1

1

JNAは、C関数とデータへのアクセスを支援します。1つのオプションは、CAPIでC++機能を公開することです。

多くのC++クラスにアクセスする場合は、SWIGの方が適しています。C++クラスのJavaラッパーを作成できます。それは非常に強力ですが、学習曲線があります。

于 2010-12-16T23:28:16.557 に答える