`
阅读更多

    java里调用C的接口,以前只是了解java里有个native,调用本地类,做了个例子,具体方法就是利用java中的JNI(java native interface),创建一个java类,在这个类中声明要用到的C中的函数,不必在此将其实现,格式 public native int getFun();然后把他放到C盘的根目录下(这样主要是为了在CMD中好编译),然后用javac Test将其编译成class,再用javah Test将其打成C的.h头文件,然后建一个C的dll(Dynimic link library)工程,实现头文件中定义的那些函数,要注意,C中的函数名要和.h中要用到的函数的名子一样,将这个做好的工程build成一个DLL文件(生成的DLL文件在工程所在文件夹的DEBUG中)
    我测试的时候把他放在了C盘的一个文件夹下,然后设置PATH,把这个动态连接库的上一级目录定义到PATH中(如果把.DLL也写进去会报错的),测试的时候在这个java类中写个main()函数对其行测试,在这个java类中就可以调用这些函数,就像调本类的函数一样,能将这个类中的东西进行输入输出.

    创建一个OCX工程,在C++编译器中建立一个MFC..的工程(第一个MFC的,没记住后面的名子,不过开一下编译器就可以看到了),建一个Interface.h文件,把要用到的函数定义到里面去,在建好的工程中左侧的目录中的第一个类处,点击右键创建要调用的方法,这样会在XXXXXctl.cpp中的最后创建出这个方法,在XXXXXctl.cpp中调用这个函数所在的那个.DLL文件(例如BatchScan.dll),调用其中用batchScan()方法,编译成功后在这个工程所在文件夹下的release文件夹中会自动生成.OCX文件,这就是得要得到的,重要的是这其中又用到了那个.DLL文件,所以我没做出来.
    我直接用就得了,把这个BatchScan.ocx文件放到了我安装的那三个本接接口的Interface文件夹中,覆盖了其中的一个相同的文件,再注册一下,第三个接口中的一个.bat的文件,我在WEB(这个.htm文件是以前他们做的一个很多按钮的东西,我用的只是在其加的一个按钮,看懂他的用法,把我用的东西移到我做好的手工录入工作站中)中就可以调用了.---20070701
分享到:
评论

相关推荐

    jni.zip jni编译jni下载

    学习JNI编译时,缺少的jni.h和jni_md.h头文件,Java调用C和C++函数时的JNI使用区别: 注意:jni.h头文件中对于***.c & ***.cpp采用不同的定义

    JNI编程指南与规范.zip

    JNI程序员指南与规范.pdf + 06 JNI编程指南.pdf NDK开发汇总 https://blog.csdn.net/baopengjian/article/details/104615972 THIS book covers the Java™ Native Interface (JNI). It will be useful to you if ...

    JNI完全技术手册 带完整书签

    Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 Chap 3:javah命令帮助信息... 16 Chap 4:用javah产生一个.h文件... 17 Chap5:jni教程(very very good) 19 Chap6: JNI传递返回值... 26 15.2.2.3 传递字符...

    java读写注册表jar包,com.ice.jni.registry

    META-INF/MANIFEST.MF com.ice.jni.registry.HexNumberFormat.class com.ice.jni.registry.NoSuchKeyException.class com.ice.jni.registry.NoSuchValueException.class com.ice.jni.registry.RegBinaryValue.class ...

    JNI编程指南书

    本书介绍了JNI的设计思想,对这种思想的理解是使用JNI的各种特性的基础。 本书有一部分是JAVA2平台上面的JNI特征的规范说明。JNI程序员可以把这部分用作一个手册。JVM开发者在实现虚拟机的时候必须遵守这些规范。 ...

    Java registry,com.ice.jni.registry

    com.ice.jni.registry.RegMultiStringValue.class com.ice.jni.registry.RegBinaryValue.class com.ice.jni.registry.RegistryException.class com.ice.jni.registry.NoSuchValueException.class ...

    JNI编程指南-书签版

    从网上找的JNI编程指南,但是没有书签,为了方便自己看就添加了书签。JNI 是 JAVA 平台的一个重要特征, 使用它我们可以至用以前用 C/C++写的大量代码。本书 既是一个编程指南也是一个 JNI 手册。本书共包括三部分...

    JNI的两个头文件jni.h和jni_md.h

    JNI的两个头文件jni.h和jni_md.h,提供需要的人下载!!!!!

    CTP的JNI封装

    上期技术的CTP接口的JNI封装: (1)网上也有一些实现,不过都挂羊头卖狗肉的,超级鄙视。 (2)testCTP是JAVA的Eclipse工程,执行CTPTest就可以调用起CTP的JNI接口,lib是testCTP工程依赖的jar包,熟悉JAVA的人导入这个...

    jni.h文件.7z

    jni.h文件jni.h文件jni.h文件jni.h文件jni.h文件jni.h文件

    Java jni调用c实例

    Java jni调用c实例

    JNI之Hello-JNI进阶

    3. 在根目录下创建 jni 目录(mkdir jni). 4. 利用命令生成相应的头文件,在根目录下执行:javah -classpath bin/classes -d jni com.xxx.hello.HelloJni ————————————— ——————— ^ ^ 包名 ...

    jni.h头文件

    学习JNI编译时,缺少的jni.h和jni_md.h头文件

    JNI 静态注册 so 和 IDA 导入的 JNI.h 文件.zip

    JNI 静态注册 so 和 IDA 导入的 JNI.h 文件

    jni-example.zip

    Android jni基础知识, # This is a test examlpe foe android jni 1、实现一个android工程,在其Android.mk文件中不要定义jni相关的东西,代码中可以尽情的使用 2、使用mmm 命令编译该工程,能够编译成功的。...

    android_JNI介绍

    目前Java与Dll交互的技术主要有三种:JNI、JAWIN和JACOB,JNI(Java Native Interface)是SUN提供的Java与系统中的原生方法的技术。JACOB(Java-Com Bridge)提供Java程序调用Microsoft的com队形的方法能力,而除了com...

    jni传递对象数组

    可在jni层返回应用层一个对象数组,包括字符串、整数、小数的成员变量

    JNI入门Demo3.0

    JNI入门Demo3.0,用于演示JNI中是如何动态注册Native函数。

    JNI使用规范详解.pdf

    JNI,全称为Java Native Interface,即Java本地接口,JNI是Java调用Native 语言的一种特性。通过JNI可以使得Java与C/C++机型交互。即可以在Java代码中调用C/C++等语言的代码或者在C/C++代码中调用Java代码。由于JNI...

    zstd-jni-1.4.4-3-API文档-中英对照版.zip

    赠送jar包:zstd-jni-1.4.4-3.jar; 赠送原API文档:zstd-jni-1.4.4-3-javadoc.jar; 赠送源代码:zstd-jni-1.4.4-3-sources.jar; 赠送Maven依赖信息文件:zstd-jni-1.4.4-3.pom; 包含翻译后的API文档:zstd-jni-...

Global site tag (gtag.js) - Google Analytics