Dobrý den,

ve své aplikaci napsané v Javě potřebuju používat COM objekty dostupné z
DLL souboru. Na internetu jsem našel knihovnu com4j a rozhodl se ji k
tomuto účelu využít.

Podle tutoriálu se mají nejprve vygenerovat javovské třídy pro jednotlivé
COM objekty tímto způsobem:

java -jar tlbimp.jar -o [output dir path] -p [output package] [path to the
DLL file]

Zavolání tohoto příkazu mi ale vyhodí následující výjimku:

Exception in thread "main" com4j.ExecutionException: com4j.ComException:
80029c4a LoadTypeLib failed : Chyba při načítání knihovny typů či DLL. :
.\com4j.cpp:395
at com4j.ComThread.execute(ComThread.java:203)
at com4j.Task.execute(Task.java:25)
at com4j.COM4J.loadTypeLibrary(COM4J.java:322)
at com4j.tlbimp.driver.Lib.getLibid(Lib.java:90)
at com4j.tlbimp.driver.Driver.addLib(Driver.java:38)
at com4j.tlbimp.driver.Main.doMain(Main.java:123)
at com4j.tlbimp.driver.Main.main(Main.java:56)
Caused by: com4j.ComException: 80029c4a LoadTypeLib failed : Chyba při
načítání knihovny typů či DLL. : .\com4j.cpp:395
at com4j.Native.loadTypeLibrary(Native Method)
at com4j.COM4J$2.call(COM4J.java:324)
at com4j.COM4J$2.call(COM4J.java:322)
at com4j.Task.invoke(Task.java:51)
at com4j.ComThread.run0(ComThread.java:153)
at com4j.ComThread.run(ComThread.java:134)

Pokud si prohlížím obsah DLL souboru pomocí ildasm.exe, COM interfaces a
jejich metody se mi zobrazují korektně.

Co dělám špatně?

Předem děkuji za pomoc,
Dušan R.

Odpovedet emailem