使用Java中的COM.dll而不使用regsvr32注册库

使用Java中的COM.dll而不使用regsvr32注册库,java,dll,com,java-native-interface,jna,Java,Dll,Com,Java Native Interface,Jna,我有一个COM DLL,它描述了接口的几个版本。这个DLL还依赖于另外两个常规DLL文件作为依赖项(我猜,我也有这两个DLL) 使用VisualC++生成的COM/OLE浏览器,我能够生成.IDL文件,因此我知道接口中有什么方法。 我无法理解如何在不向regsvr32注册DLL的情况下创建一个java对象,将其委托给COM DLL中的方法。我也不知道在这种情况下应该如何解决“其他DLL”依赖关系 我试着阅读有关com4j、JACOB等的书籍,但我发现所有的东西都集中在使用COM界面的Word/E

我有一个COM DLL,它描述了接口的几个版本。这个DLL还依赖于另外两个常规DLL文件作为依赖项(我猜,我也有这两个DLL)

使用VisualC++生成的COM/OLE浏览器,我能够生成.IDL文件,因此我知道接口中有什么方法。 我无法理解如何在不向regsvr32注册DLL的情况下创建一个java对象,将其委托给COM DLL中的方法。我也不知道在这种情况下应该如何解决“其他DLL”依赖关系

我试着阅读有关com4j、JACOB等的书籍,但我发现所有的东西都集中在使用COM界面的Word/Excel/PowerPoint/Outlook自动化上。

我从未使用过JAVOB(或任何其他Java->COM桥)但是我希望使用Office automation对象与使用任何其他COM组件没有什么不同

一个可能的区别与访问组件的方式有关(早期/晚期绑定,或自定义接口或分派接口)

如果我处在您的位置,我会首先尝试注册/访问该组件(使用JACOB、com4j或任何其他用于Java的COM桥)。只有在这个场景开始工作后,我才会进入下一步:尝试摆脱注册COM dll的要求(检查-它可能会工作)

如果在注册DLL后无法访问组件,您可能仍然尝试使用其他语言(例如C或VB.NET、VB 6、Delphi、C++等),更容易的COM集成来测试您的注册。


有关的详细信息。

我已经尝试使用C#-如果我注册dll,一切都会正常工作。没有C注册,我就无法完成这两项工作,因为我对COM和C了解不够。我现在正试图学习该教程,MSVS 2013出现了一些奇怪的错误,但StackOverflow有帮助:)我已经编辑了答案,并添加了更多指向免注册COM(一些特定于.Net)的链接,谢谢!我正在与C++解决方案从你的第一个链接现在: