ステップバイステップ |
いよいよ、ネイティブメソッドの実装を C 言語で作成する作業に入る。ここで作成する関数は、ステップ 3: .h ファイルを作成するで
javahによって
HelloWorld.h
ファイルの中に生成した関数と、同じ関数シグニチャをもっていなければならない。HelloWorld
クラスのdisplayHelloWorld()
ネイティブメソッドに対する関数シグニチャは次のようになる。次に、extern void HelloWorld_displayHelloWorld(struct HHelloWorld *);HelloWorld_displayHelloWorld()
の実装を示す。これは、HelloWorldImp.c
という名前のファイルの中にある。これを見てわかるように、#include <StubPreamble.h> #include "HelloWorld.h" #include <stdio.h> void HelloWorld_displayHelloWorld(struct HHelloWorld *this) { printf("Hello World!¥n"); return; }HelloWorld_displayHelloWorld()
の実装は簡単である。printf
関数を使用して "Hello World!" 文字列を表示し 、戻るだけである。このファイルには以下の 3 つの C 言語ヘッダーファイルがインクルードされている 。
- Java 実行時、システムと情報を交換するための十分な情報を C 言語コードに提供する
StubPreamble.h
。 ネイティブメソッドを書くときは、このファイルを常に自分の C 言語ソースファイ ルにインクルードする必要がある。
- ステップ 3: .h ファイルを作成するで生成した
.h
ファイル。このファイルには、作成中のネイティブメソッドが対応してい る Java クラスを表す C 言語構造体と、このステップで作成中のネイティブメソッ ドに対応する関数定義が含まれている。
- 上に示したコードは
printf()
を使用するため、stdio.h
もインクルードされている。
ステップバイステップ |