用jni。就是java 自然语言,你可以看看《java编程思想》,里面有讲解的。主要是用vc做一个中间dll

解决方案 »

  1.   

    我现在很忙,没时间给你详细讲,有问题给我发mail:[email protected]
      

  2.   

    是的,不过要按照JNI的一套写函数。
      

  3.   

    只能使用JNI来实现,给一个我写的小例子,仅供参考:
    这是一个打印hello world的例子,打印由c的printf来完成package mytest;public class HelloNative
    {
              //将要调用的打印方法声明为native,且直接加分号即可
     public native static void greeting();
     static
    {
                       //这个dll是有打印函数的c编译成的
                       //系统在程序开始是导入它,这样才能成功
     System.loadLibrary("newPrintfDll");
    }
    }//主方法类
    package mytest;import mytest.*;public class HelloNativeTest
    {
    public static void main(String[] args)
    {
    HelloNative.greeting();
    }
    }成功!
    注意:首先,你要将HelloNative编译成class文件,然后使用javah编译该class文件,生成.h文件(要注意路径,如果有包,要退到包名上一级来编译.h文件,否则即使dll调用成功,也会显示找不到greeting方法)
    将该.h文件中的关键代码粘帖到cpp文件中(有vc向导生成一个dll的文件模版),关键代码:
    JNIEXPORT void JNICALL Java_mytest_HelloNative_greeting
      (JNIEnv* env, jclass cl)//稍做了修改
    {
          printf("asdfasdf");
    }
    编译成dll文件,放到如c:\winnt\system32下,你的.h文件也要放到相应目录(在编译dll时放到vc98\include下,还有jni.h和jni_md.h也要找到它们放入),这样就基本完成了,具体细节我无法讲得太仔细建议去看参考资料.谢谢.
      

  4.   

    java 自然语言汗……是哪本书上翻译的?
      

  5.   

    jni 方法,具体的你可以到www.IBM.com/cn/去找一下那里有一套完整介绍JNI的书
      

  6.   

    调用com组件可以吗,用http://users.rcn.com/danadler/javacom/index.html