我现在有一个C++写成的dll,并知道函数接口
请问如何在java中调用?
我知道用JNI可以解决
不知具体步骤啊? 
谢谢!
给点大概的提示也好啊!

解决方案 »

  1.   

    自己回一个
    参数中有 HANDLE hHandle 又如何处理
      

  2.   

    继续顶一个!
    用JNI封装已有的DLL动态库(只要c能调用的都行,不分微软不微软),也就是有两个DLL,一个是原来的,一个是封装后的现在的问题是 如何用JNI封装原来的DLL啊?????
    给个简单的例子吧。
      

  3.   

    请问一下你,什么叫函数接口,是不是头文件啊,因为我也用c++写了一个dll,但是我不知道我的函数接口是什么,跟java中的不一样吧.我是菜鸟一名,教教我,谢谢了,哥哥
      

  4.   

    public native "returnclass" method();
    static{
    try{
    System.loadLibrary("dllname");
    }catch(UnsatisfiedLinkError e){ 
    System.err.println("Cannot load lockpin library:\n " + e.toString());
    }
    }
      

  5.   

    JNI的简要使用例子
    下面是一个简单的例子实现打印一句话的功能,但是用的c的printf最终实现。一般提供给java的jni接口包括一个so文件(封装了c函数的实现)和一个java文件(需要调用path的类)。
    1. JNI的目的是使java方法中能够调用c实现的一些函数,比如以下的java类,就需要调用一个本地函数testjni(一般声明为private native类型),首先需要创建文件weiqiong.java,内容如下:
    class weiqiong
    {
    static
    {
    System.loadLibrary("testjni");//载入静态库,test函数在其中实现
    }
    private native void testjni(); //声明本地调用
    public void test()
    {
    testjni();
    }
    public static void main(String args[])
    {
    weiqiong haha = new weiqiong();
    haha.test();
    }
    }2.然后执行javac weiqiong.java,如果没有报错,会生成一个weiqiong.class。3.然后执行javah weiqiong,会生成一个文件weiqiong.h文件,其中有一个函数的声明如下:
    JNIEXPORT void JNICALL Java_weiqiong_testjni
    (JNIEnv *, jobject);4.创建文件testjni.c将上面那个函数实现,内容如下:
    #include <stdio.h>
    #include <weiqiong.h>
    JNIEXPORT void JNICALL Java_weiqiong_testjni
    (JNIEnv *env, jobject obj)
    {
    printf("haha---------go into c!!!n");
    }5.为了生成.so文件,创建makefile文件如下:
    libtestjni.so:testjni.o makefile
    gcc -Wall -rdynamic -shared -o libtestjni.so testjni.o
    testjni.o:testjni.c weiqiong.h
    gcc -Wall -c testjni.c -I./ -I/usr/java/j2sdk1.4.0/include -I/usr/java/j2sdk1.4.0/include/linux
    cl:
    rm -rf *.o *.so
    注意:gcc前面是tab空,j2sdk的目录根据自己装的j2sdk的具体版本来写,生成的so文件的名字必须是loadLibrary的参数名前加“lib”。6.export LD_LIBRARY_PATH=.,由此设置library路径为当前目录,这样java文件才能找到so文件。一般的做法是将so文件copy到本机的LD_LIBRARY_PATH目录下。7.执行java weiqiong,打印出结果:“haha---------go into c!!!”
      

  6.   

    http://www.codeproject.com/java/jnibasics1.asp