0
는 C++ 코드가 함께 CATIA COM API를 자바를 해소하는 방법 :com4j 여기
내가 com4j와 자바 같은 CATIA API를 호출 할#import "path\to\catia\intel_a\code\bin\InfTypeLib.tlb" no_namespace
// ...
ApplicationPtr catia;
catia.CreateInstance("CATIA.Application");
catia->PutVisible(VARIANT_TRUE);
. com4j 튜토리얼 페이지에 따르면, 자바의 정의는 다음 명령에 의해 생성 된 :
java -jar ..\..\tlbimp.jar -o catia -p catia InfTypeLib.tlb
그러나 결과 ClassFactory은 COM 객체를 생성하는 정적 방법이 없습니다.
import com4j.*;
/**
* Defines methods to create COM objects
*/
public abstract class ClassFactory {
private ClassFactory() {} // instanciation is not allowed
}
그런 다음 다른 형식 라이브러리 'CATIAAppTypeLib.tlb'를 시도했습니다.
import com4j.*;
/**
* Defines methods to create COM objects
*/
public abstract class ClassFactory {
private ClassFactory() {} // instanciation is not allowed
public static org.huys.catia.AppType._CATIAApp createCATIAAppObj() {
return COM4J.createInstance(org.huys.catia.AppType._CATIAApp.class, "{5A29422A-F2B0-11D4-A3AA-00D0B756AD5D}");
}
public static org.huys.catia.AppType.CATIAVBAHostingApplication createCATIAVBAHostingApplicationImpl() {
return COM4J.createInstance(org.huys.catia.AppType.CATIAVBAHostingApplication.class, "{0663D095-471D-11D2-9AA3-00A024941EF0}");
}
}
것은 자바에서 이러한 메서드를 호출 할 때, 내가 응용 프로그램 인터페이스의 인스턴스를 만들 수있는 방법을 찾을 수 없습니다
com4j.ExecutionException: com4j.ComException: 80040154 CoCreateInstance failed : Class not registered : .\com4j.cpp:153
을 얻었다.
아무도 도와 줄 수 있습니까? 감사.