com.jacob.com.ComFailException: Can't co-create object解决办法
2016-02-26 15:13
686 查看
在使用jacob调用VB.NET写的dll时,总是报错
网上找到几种解决办法:
1.没有释放com线程或者干脆没有使用com线程控制。因此解决方案即:释放com线程(ComThread.Release();)。因此修改代码为
对不起,不成功!!!!
2.在系统的服务进程中,找到“DCom Server Process Launcher”这个服务选项,请确认这个服务是关闭着的,还是开启的。
/article/4397755.html
不好意思,我们开着呢!!!
3.JDK与JACOB版本对应,我的JDK是1.7,JACOB是1.17,电脑是win10,都是64位的。
奔溃,各版本都试过!!!
4.jar和dll文件版本需对应,jar包是64位的,dll文件是同事开发的,所以就去询问同事给我的是什么版本的dll,同事当时不造。。。
后来在Google找到一篇帖子说在VB.NET中编译选择的平台如果是Any CPU,那么久意味着生成的dll文件是32位的。没想到我们的dll文件真的是这样编译的!
如上图:将Any CPU换成x64重新编译就可以了。
如此问题就解决了!!!
com.jacob.com.ComFailException: Can't co-create object at com.jacob.com.Dispatch.createInstanceNative(Native Method) at com.jacob.com.Dispatch.<init>(Dispatch.java:99) at com.jacob.samples.test.CallDll.JavaCallVbdll(CallDll.java:19) at com.jacob.samples.test.CallDll.main(CallDll.java:13)
网上找到几种解决办法:
1.没有释放com线程或者干脆没有使用com线程控制。因此解决方案即:释放com线程(ComThread.Release();)。因此修改代码为
public static String JavaCallVbdll(String str){ ComThread.InitSTA(); String res=""; try { Dispatch test = new Dispatch("TestDLL.ComClass1"); Variant result = Dispatch.call(test, "teststr", str); res=result.toString(); }catch (Exception e) { res=""; e.printStackTrace(); }finally { ComThread.Release(); } return res; }
对不起,不成功!!!!
2.在系统的服务进程中,找到“DCom Server Process Launcher”这个服务选项,请确认这个服务是关闭着的,还是开启的。
/article/4397755.html
不好意思,我们开着呢!!!
3.JDK与JACOB版本对应,我的JDK是1.7,JACOB是1.17,电脑是win10,都是64位的。
奔溃,各版本都试过!!!
4.jar和dll文件版本需对应,jar包是64位的,dll文件是同事开发的,所以就去询问同事给我的是什么版本的dll,同事当时不造。。。
后来在Google找到一篇帖子说在VB.NET中编译选择的平台如果是Any CPU,那么久意味着生成的dll文件是32位的。没想到我们的dll文件真的是这样编译的!
如上图:将Any CPU换成x64重新编译就可以了。
如此问题就解决了!!!
相关文章推荐
- WaitForSingleObject以及WaitForMultipleObjects 函数
- 《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-C API映射
- Line: 209 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:209:-1
- '-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'
- 使用ObjectAnimator开发打开、关闭书本动画
- Objective-C Runtime的数据类型
- buffer object,render buffer,framebuffer
- 自动释放池详解
- object.observe数据绑定
- C#面向对象(Object-Oriented Programming)
- 《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-C API映射
- Mybatis配置报错元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?,objectFa
- js如何获取object类型里的键值
- Objective-C(Cocoa)中NSNumber、NSValue,NSNull类的简单应用
- Object之超级奶爸三
- 从别人写的 Object-C 中 Singleton (单例) 模式 中的一些理解--备
- Objective-C中单例模式的实现-备
- Objective-C Runtime
- 绘制Objective-C程序的UML类图
- 一个自动根据xcode中的objective-c代码生成类关系图的神器