明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Java程序與C語(yǔ)言的接口

[摘要]第一步:聲明本地變量   例如:   class NativeHello   public native void nativeHelloWorld();   static   System.loodlibrary("nativeTest");//調(diào)用nativeTest.dl...
  第一步:聲明本地變量

  例如:

  class NativeHello{
  public native void nativeHelloWorld();
  static{
  System.loodlibrary("nativeTest");//調(diào)用nativeTest.dll庫(kù)文件
  }
 。

  第二步:生成頭文件

  先用javac編譯NativeHello.java,再用javah生成c的頭文件.h文件

  第三步:生成根文件

  命令如下:javah -stubs NativeHello (生成NativeHello.c文件)

  第四步:編寫C程序(此處假定文件名為NativeTest.c)

  #include
  #include //指第二步生成的.h文件
  #include //指JDK的include下的文件
  void Nativehello_nativeHelloWorld(struct HNativeHello *this){
  .........
  }
  /*函數(shù)名Nativehello_nativeHelloWorld不能任意指定,可以從javah生成的頭文件中查到,也可用

  如下方法命名:類名_本地方法名(struct H類名 *this)*/

  第五步:編譯DLL文件

  將nativeTest.c和NativeHello.c編譯成DLL庫(kù)文件,文件名與System.loodlibrary("nativeTest")中的文件同名。

  最后講一下測(cè)試的方法,源文件如下:

  class UseNative{
  public static void main(String []args){
  NativeHello nh=new NativeHello();
  nh.nativeHelloWorld();
  }
  }