私の環境はJava 7、Windows 7 - 64ビットです。だからここに私は javaの続き私の要件と手順です:Javaのバージョン「1.8.0_131」32ビット ジェイコブ:ジェイコブ-1.18-x86.dll & jacob.jarjacob IDispatchのQIオブジェクトできません
私は次のコード.ITの作品を実行するためにEclipseを使用よく
import com.jacob.com.*;
import com.jacob.activeX.*;
public class DispatchTest {
public static void main(String[] args) {
ActiveXComponent xl = new ActiveXComponent("Execl.Application");
Dispatch xlo = (Dispatch)(xl.getObject());
try {
System.out.println("version="+xl.getProperty("Version"));
System.out.println("version="+Dispatch.get(xlo, "Version"));
} catch (Exception e) {
e.printStackTrace();
} finally {
xl.invoke("Quit", new Variant[] {});
}
}
}
私は、サードパーティのDLLを使用しようと、私は次のようexecptionを満たし:
import com.jacob.com.*;
import com.jacob.activeX.*;
public class DispatchTest {
public static void main(String[] args) {
ActiveXComponent xl = new ActiveXComponent("ProjectParser.1");
Dispatch xlo = (Dispatch)(xl.getObject());
try {
System.out.println("version="+xl.getProperty("Version"));
System.out.println("version="+Dispatch.get(xlo, "Version"));
} catch (Exception e) {
e.printStackTrace();
} finally {
xl.invoke("Quit", new Variant[] {});
}
}
}
Exception in thread "main" com.jacob.com.ComFailException: Can't QI object for IDispatch
at com.jacob.com.Dispatch.createInstanceNative(Native Method)
at com.jacob.com.Dispatch.<init>(Dispatch.java:99)
at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java:58)
at DispatchTest.main(DispatchTest.java:5)
https://github.com/joval/jacob/blob/master/jni/Dispatch.cpp
誰もが解決策に私を導くてくださいすることができますか?