紧急求援,JAVA中,怎么调用VC写的DLL和OCX控件???在线等待,解决立即给分!!! JNI就可以了!http://java.sun.com/products/jdk/1.2/docs/guide/jni/ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以利用jni调用或者利用微软提供的J/Direct直接调用win32dll,利用@dll.import引入如果要调用com组件的话要利用jactivex将com生成java源码然后利用ms的jvm进行编译即可引用(用了@com指令)think in java 的附录A里有,非常详细 我不想用MS的东西啊,因为我觉得那不是纯JAVA,还有水能给我启示,例子,谢谢 好象是这样调用的:System.loadLibrary("feedback");feedback为dll的名称,具体怎么样,你可以试试。 调用比较麻烦, 你想用现成的DLL, 先写个JAVA 类实现你的调用DLL的方法,用JAVAH生成相应的头文件,在C中实现它. 最后System.loadLibray(),在JAVA中调用他的静态方法. 那就只有用JNI了class ShowMsgBox{ public static void main(String [] args){ ShowMsgBox app= new ShowMsgBox(); app.ShowMessage("Generated with JNI"); } private native void ShowMessage(String msg); static{ System.loadLibrary("动态库(不加扩展名)"); }}直接编译运行但能不能调用COM组件就不知道了 好说好说,我刚刚有做完一个类似的应用。在Java Application中调用一个现有的ActiveX控件。虽然比较辛苦——由于利用JNI,需要用比较纯粹的API调用包装ActiveX控件的借口部分,不过,技术上没有难度。CodeProject有一个现成集成ActiveX控件的例子,虽然比较简单,但我也是参照了这个例子才实现我们的应用。Embed ActiveX controls inside Java GUIBy Davanum Srinivashttp://www.codeproject.com/java/javacom.aspGood luck! 建议你先看看http://java.sun.com/products/jdk/1.2/docs/guide/jni/,它介绍了jni的原理和步骤,然后在看楼上这位提供的例子,就会很清楚了。否则你会不知道楼上提供的例子是怎么一步一步做出来的,特别是会用到.h文件,但它却是由jni命令生成的,而不是VC生成的。祝你成功,应该不难! 这个可能可以帮帮你。http://www.codeproject.com/useritems/sharedmem_jni.asp 可以试试COM-Java的桥接!如J-Integra,支持COM和Java组件的双向通信而且不需要本机库!另外可以关注一下J2EE的COM桥(好像是叫CAS吧)! 我注册不上啊J-Integra当然也就下不了了,DLL已经成功了,请问OCX该怎么办???,谢谢 http://developer.java.sun.com/developer/earlyAccess/j2eecas/http://alphaworks.ibm.com/tech/bridge2java 也可以看看这个,我没用过!http://danadler.com/jacob/ 谢谢,谢谢各位,我现在有J-Integra了,但是不知道怎么用,谁能帮我,谢谢 java 转码 删除子项的子项?? java类库是不是没有实现链表和队列这些类? java应什么学?? 用drawImage为什么显示不出图象? 紧急!!! 推荐一些学习structs的好书吧 什么是失量(Vector),什么是列表(List)? 声明对象的时候想用字符窜变量怎么办? javac编译 请教一个关于jsdk1.4.0 -b92的中文问题。 请问怎样实现光标定位于某个控件上?
然后利用ms的jvm进行编译即可引用(用了@com指令)think in java 的附录A里有,非常详细
System.loadLibrary("feedback");
feedback为dll的名称,具体怎么样,你可以试试。
用JAVAH生成相应的头文件,在C中实现它.
最后System.loadLibray(),在JAVA中调用他的静态方法.
class ShowMsgBox{
public static void main(String [] args){
ShowMsgBox app= new ShowMsgBox();
app.ShowMessage("Generated with JNI");
}
private native void ShowMessage(String msg);
static{
System.loadLibrary("动态库(不加扩展名)");
}}
直接编译运行但能不能调用COM组件就不知道了
By Davanum Srinivas
http://www.codeproject.com/java/javacom.aspGood luck!
如J-Integra,支持COM和Java组件的双向通信而且不需要本机库!
另外可以关注一下J2EE的COM桥(好像是叫CAS吧)!