最近、私はWebページで顔認識のためのプロジェクトを作成し、C ++で顔認識アルゴリズムを書きました。ただし、WebページでJavaバックエンドを使用する必要があります。これには、JavaがDLLを呼び出すという問題が含まれます。以下は、関連情報を調べて編集者が達成したことの簡単な例です。
1.最初のステップは、Javaで新しいクラスを作成することです
上の写真に示すように、文に注意してください。System.LoadLibrary( "Javacallcpp");、これはDLLファイルをロードするコードです。次に、以下でDLLで定義する追加、減算、乗算、および分割方法を実装する必要があります。
2。ファイルをコンパイルし、ファイル名はjava2cpp.javaで、最初にクラスファイルにコンパイルします。 Eclipseを使用すると、プロジェクトディレクトリのビンフォルダーでファイルが自動的に生成されます。コマンドラインでコンパイルし、CMDウィンドウを.javaファイルが配置されているディレクトリにCDを開き、コマンドjavac java2cpp.javaを実行します。つまり、java2cpp.classを生成します
次に、コマンドJavah java2cppを実行してJava2cpp.hヘッダーファイルを生成しますが、このステップはしばしば失敗します。別の方法が成功する可能性があります。 Eclipseプロジェクトのディレクトリを入力し、Binフォルダーを入力し、コマンドJavah -ClassPathを実行します。 -jniパッケージname.class name(com.test.jni.java2cpp)、com_test_jni_java2cpp.hを生成します
3. VSで新しいプロジェクトWin32を作成し、名前を付けます。TestJni、2番目のステップは次のとおりです。
4. 2番目のステップで生成されたヘッダーファイルをプロジェクトフォルダーにコピーして、インポートします。
5。ヘッダーファイルにメソッドを実装してください。
(1)新しいヘッダーファイルdllapi.hを作成すると、コードは次のとおりです。
#include "com_test_jni_java2cpp.h" int dll_api_add(int a、int b); int dll_api_sub(int a、int b); int dll_api_mul(int a、b); int dll_api_div(int a、int b);
(2)上記の方法を実装するために新しいdllapi.cppを作成します。コードは次のとおりです。
#include "stdafx.h" #include <iostream> #include "dllapi.h" int dll_api_add(int a、int b){return(a + b);} int dll_api_sub(int a、int b){return(a -b);} int dll_api_mul(a in in in f) dll_api_div(int a、int b){return(a / b);} (3)testjni.cppにコードを追加して、com_test_jni_java2cpp.hメソッドを実装します。コードを追加した後、次のとおりです。
// testjni.cpp:DLLアプリケーションのエクスポート関数を定義します。 //# "stdafx.h" #include "testjni.h" #include "com_test_jni_java2cpp.h" #include "dllapi.h" //これは変数のエクスポートの例です。 testjni_api int fntestjni(void){return 42;} //これはエクスポートクラスのコンストラクターです。 //クラスの定義については、testjni.hctestjni :: ctestjni(){return;} jniexport jint jnicall jnicall java_test_jni_java2cpp_dll_1add(jnienv *env、ev、job obj、jint a、jint b){int var = 0を参照してください。 var = dll_api_add(a、b); return var;} jniexport jint jnicall java_com_test_jni_java2cpp_dll_1sub(jnienv *env、job obj、jint a、jint b){int var = 0; var = dll_api_sub(a、b); return var;} jniexport jint jnicall java_com_test_jni_java2cpp_dll_1mul(jnienv *env、job obj、jint a、jint b){int var = 0; var = dll_api_mul(a、b); return var;} jniexport jint jnicall java_com_test_jni_java2cpp_dll_1div(jnienv *env、job obj、jint a、jint b){int var = 0; var = dll_api_div(a、b); varを返します;}(4)DLLを生成すると、プロジェクトフォルダーの下のデバッグフォルダーにtestjni.dllを見つけることができます。ただし、Javaでjavacallcppという名前のDLLを必要とするため、この時点でプロジェクトの名前をJavacallcppに変更し、Javacallcppを再生します。 [このステップは生成に失敗し、次のようにパスを追加します]
6呼び出し方法
ステップ5で生成されたjavacallcpp.dllをJREインストールパスの下のビンフォルダーにコピーし、Javaプログラムを実行します。結果は次のとおりです。
上記は、編集者が紹介したC ++ DLLライブラリをJavaと呼ぶ方法の完全な説明です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!