忍者ブログ
メモ、備忘録、その他雑記を記載します。 ただし、このHPに記載している情報を利用した結果 損失・損害等が発生したとしても筆者は責任を持ちません。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Java Native Interface (JNI) は、Javaプラットフォームにおいて、Javaで記述されたプログラムと、他の言語(たとえばCやC++など)で書かれた、実際のCPUの上で動作するコード(ネイティブコード)とを連携するためのインタフェース仕様である。
ここではJNIを使用して、VC6.0で作成したMFC DLL内の関数を呼び出す処理を記載する。
 
 
1.javaファイル作成
 JniTest.javaを作成。中身を以下のように記載しておく。
 
  public class JniTest {
 
    static {
      System.loadLibrary("JniTestDll");
    }
 
    // ネイティブ関数1
    static native void JniTestFnc1();
    // ネイティブ関数2
    static native void JniTestFnc2(String str);
  
    public static void main(String args[]) {
      // ネイティブ関数1呼び出し
      JniTestFnc1();
      // ネイティブ関数2呼び出し
      JniTestFnc2("JNI test Fnc2!");
    }
  }
 ※呼び出すC/C++のDLLファイル名は「JniTestDll.dll」と指定している
 ※呼び出すC/C++の関数名は「JniTestFnc1」「JniTestFnc2」と指定している
 
2.javaコンパイル
 >javac JniTest.java
 
3.C/C++ヘッダファイル生成
 >javah JniTest
  →これで「JniTest.h」が生成される。
 
4.C/C++(ここではC++)DLLファイル生成
 
 VC6.0でDLLプロジェクトを生成する(今回はMFC使用のプロジェクトを生成)
 3.で作成したヘッダファイルをプロジェクトに追加する。
 3.で作成したヘッダファイルに合わせた関数の中身を実装する。
 プロジェクトの設定で以下のインクルードパス追加する。
  C:\Program Files\Java\jdk1.6.0_24\include,C:\Program Files\Java\jdk1.6.0_24\include\win32
  ※JKDを「C:\Program Files\Java\jdk1.6.0_24」にインストールした場合
 Release ビルドして「JniTestDll.dll」を生成し、1.のjavaファイルと同パスに置いておく
 
5.動作確認
 >java JniTest
 →4.で実装した処理を行える。
 

拍手[0回]

PR
コメントを書く
お名前
タイトル
メールアドレス
URL
コメント   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
パスワード
この記事へのトラックバック
この記事にトラックバックする:
 HOME | 45  43  41  40  38  35  34  33  32  29  28 
Admin / Write
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
フリーエリア
最新コメント
最新トラックバック
プロフィール
HN:
Ace
性別:
非公開
バーコード
ブログ内検索
P R
忍者アナライズ
忍者ブログ [PR]