当前位置:  技术问答>java相关

如何使用java,调用Visual Basic的ActiveX Dll???(100)

    来源: 互联网  发布时间:2015-08-20

    本文导语:  现有一个java应用,希望可以调用现有的一些VB的ActiveX Dll的方法。 调用方法的限制: i.  拒绝使用商业的控件。 ii. 只编少量的程序就可实现。 iii.有一定的及时性的限制。 | 我会: ) 给一...

现有一个java应用,希望可以调用现有的一些VB的ActiveX Dll的方法。

调用方法的限制:
i.  拒绝使用商业的控件。
ii. 只编少量的程序就可实现。
iii.有一定的及时性的限制。

|
我会: )
给一个简单例子:
package mytest;

public class HelloNative
{         //要调用的本地方法声明为native
 public native static void greeting();
 static
{
 System.loadLibrary("newPrintfDll");
}
}
主类如下:
package mytest;

import mytest.*;

public class HelloNativeTest
{
public static void main(String[] args)
{
HelloNative.greeting();
}
}
首先,你要编译有native方法的那个文件,生成class文件,然后,使用jdk自带的命令javah编译该类文件,生成.h文件,生成的.h文件的关键代码如下:
JNIEXPORT void JNICALL Java_mytest_HelloNative_greeting
  (JNIEnv env*, jclass cl);//稍微改了改
用vc或者c++builder做一个dll文件,跟着winzard做,不难,将这段代码拷贝到cpp文件里(用vc做时),然后再在下面写出你要的代码如
JNIEXPORT void JNICALL Java_mytest_HelloNative_greeting
  (JNIEnv env*, jclass cl)
{
      printf("Hello NativeWorld!");
}
编译生成dll,放到c:winntsystem下就可以了.
注意:
在用vc编译dll时,要先找到jni.h和jni_md.h放到include里
在编译.h文件是注意包的路径问题(如果有的话),否则虽然可以找到dll,但还是会提示找不到方法的!
以上只是一点心得,希望对你有帮助,谢谢

|
给你两个连接去看看
http://www-900.ibm.com/developerWorks/cn/java/jnimthds/index.shtml

http://www-900.ibm.com/developerWorks/cn/java/jw-tips/tip023/index.shtml

还有
http://www-900.ibm.com/developerWorks/cn/java/javabeans-mig/index.shtml

|
System.loadLibrary("JRockey");
其中JRockey是指windows/system或winnt/system32下的JRockey.dll
也就是说你的dll文件应该放在windows/system或winnt/system32下!

|
JRockey.dll里还有相应的对象呢,要调这些对象的方法才行呀,不知该怎么做呀!
关注!

|
不会吧,简直恐怖!!!!!!!!!!!!!

    
 
 

您可能感兴趣的文章:

  • 在Python中使用SWIG调用C和C++程序
  • 新手:Linux下使用第三方C库(openssl),是调用.so文件还是直接调用.h文件?
  • Qt下使用Linux系统调用?
  • fork~exec不会使用,请问怎么使用,我只是想简单的用进程调用一个程序。
  • 关于使用Ptrace系统调用监控进程问题
  • 使用gdb时为什么调用list不出现代码
  • [求助]如何获取一个程序所使用的系统调用和参数?
  • linux不用命令方式读文件获取网络流量,如何使用C函数调用获取网络流量信息?
  • Unix下System函数实现中为何要使用shell去调用执行程序?
  • linux 内核编程中如何使用系统调用函数呢?
  • 请问驱动程序中系统调用使用情况
  • 如何使用ececv调用另外一个程序?
  • 关于使用vnc 远程调用的问题
  • 如何使用JAVA调用利用用VC写的已有的动态库
  • 请问在 linux 下如何使用 execl() 调用另一个多进程的程序?
  • php 使用system() 调用c程序的问题
  • 求助:内核系统调用的使用问题
  • 在LINUX中使用C调用系统命令,怎么取得系统命令的输出?
  • 怎么让system调用使用ksh?
  • 如果遇到多层函数调用,使用一次上锁解锁可以保证数据的线程独立性么
  • 在线等~~如何在使用加载模块的方法加入系统调用。
  • 如何在jsp中使用activex?
  • js之ActiveX控件使用说明 new ActiveXObject()
  • flash幻灯片需要先激活ActiveX控件才能使用的又一个办法
  • 使用VS2010 C#开发ActiveX控件(下),完整代码打包下载
  • 使用VS2010 C#开发ActiveX控件(上)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何使用Visual Studio 2010在数据库中生成随机测试数据
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 使用了QWidget的程序,如何使用后台程序启动它?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 共享内存一般是怎么使用的,是同消息队列配合使用么
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • Jsp可否使用带有GUI的JavaBean,如何使用?
  • c/c++预处理命令预#,##使用介绍
  • asp程序使用的access在Linux下如何使用!
  • 在div中使用css让文字底部对齐的方法
  • 新装的Linux使用root用户不能使用FTP?
  • Python namedtuple(命名元组)使用实例
  • LINUX下使用Eclipse,如何使用交叉编译器?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3