用JNI(Java Native Interface),主要内容请看jbuilder6-help.
有详细的说明和小例子

解决方案 »

  1.   

    能不能给点具体的例子看看??另外在jsp中调用的话是不是要封装成javabean的形式来使用jni???[email protected]
      

  2.   

    应该但是不一定要封装成javabean。封装的目的是为了结构化、重用性、保密性等因素。
    具体的例子在help中有。你可能没找到
    下面的是我写的一个,请参考。
    step 1:
    用jbuilder建立一个bean。例如
    public class testBean{
    }
    step 2
    根据dll 的接口函数定义(例如void function1())加入native 函数,并加入载入dll的语句(例如dll名字为testd.dll),这里我们假设bean中的(void usef()函数调用了function1)
    public class testBean{
       public native void function1();
       static{ System.loadLibrary("testd");}
       public void usef()
      { function1();}
    }
    step3
    编译一下生成testBean.class
    step4
    利用javah建立相相应的testBean.h文件
    如javah testBean.class
    step5 
    利用vc建立一个动态连接库工程(win32 Dynamic-link library),如果empty dll project请不要忘记#include "windows.h"
    step6 
    在step5的工程中加入testBean.h,自己编testBean.cpp然后实现函数function1逻辑.如果function1的实现已经在另一个dll中了,只需要在这个创建的dll中的function1的函数体中调用那个就行了
    that is all.your welcom
      

  3.   

    谢谢,我有点明白了,但是我有个问题:你上面说的step2中的testd.dll是step5生成的。这个其实是新的dll,然后在step6的testbean.cpp中的实现对旧的dll的调用,即function1调用旧的dll的function方法!是不是这样的过程???