0

JNI経由でパラメータをメインに渡すにはどうすればよいですか?

現在、次のように DLL をロードします。

class SharedLibrary {

    native void GetBuffer(ByteBuffer Buffer);;

    SharedLibrary(String[] exec_args) {
        String path = new File(exec_args[0]).getAbsolutePath();
        System.load(path);  //Load My DLL. I want to Pass this DLL some arguments.

        ByteBuffer Foo = ByteBuffer.allocateDirect(.....);
        GetBuffer(Foo);
    }
}

DLL 引数を渡すにはどうすればよいですか? 複数の引数を渡す必要があります。

4

2 に答える 2

1

「複数のパラメータ」が必要な場合、既存の「dll main」は機能しません。ほとんどの場合、 WinAPIDllMainについて言及しており、すべての C 実行可能ファイルが関数を持つことが期待されるのとほぼ同じように、この関数はすべての DLL に必須であると考えているでしょうmain()。そうではない。特に JNI にはJNI_OnLoadパラメーターを取りませんが、DllMain には、要件ごとにユーザー定義可能な「複数のパラメーター」がありません。独自のパラメーターが必要な場合、初期化メソッドを作成できないのはなぜですか? ドクターもDllMainそう勧めています。DllMainできることは非常に限られています。JNI init メソッドを静的にして、インスタンス化する前に呼び出すことができるようにします。SharedLibraryJava のオブジェクト。それの何が問題なのですか?非常に必要な「複数のパラメーター」について何か教えてください。

于 2012-10-08T11:53:26.893 に答える