-2

Java プロジェクトで使用したいサードパーティの VC++ ベースの DLL とそのヘッダーがあります。BridJ はこれに適したソリューションであることがわかりましたが、ヘッダーが非常に複雑であるため、JNAerator はそれを詰まらせ、100% の CPU でフリーズし、最終的にOutOfMemoryError: Java heap space. そのため、ヘッダーから必要なもののバインディングを自分で作成する必要があります。

次に、アノテーションを介して BridJ をガイドする必要があります。このために、ヘッダーを調べたところ、次のような理解できない部分が見つかりました。

namespace SomeNamespace {
  class SomethingStrange TheClass {
    public:
      TheClass();
    // more
  }
}

だから、私が知りたいこと:SomethingStrangeここでどういう意味ですか? これは別の子名前空間ですか? BridJでこれを正しく接続するにはどうすればよいですか?

4

1 に答える 1

2

DLL をビルドするとき、SomethingStrange要約すると__declspec(dllexport).

そのDLLを使用__declspec(dllimport)すると、要約すると.

これにより、特定の DLL の作成者とユーザーの両方がクラス宣言を使用できるようになります。

それらが「要約される」ものは、​​通常、プロジェクト設定を介して制御されるコンパイラフラグによって制御されます。

于 2015-06-09T12:06:06.460 に答える