我正在研究如何在Java中获取指向COM对象的指针,以便我可以将指针传递给另一个本机DLL。
目前我一直在使用JACOB Java COM桥,但是我没有注意到如何获取指向实际COM对象的指针,我可以将其传递给本机DLL函数调用。
我以前使用Java Native Access(JNA)而不是JNI来调用DLL函数,我注意到JNA现在似乎有一些用于处理COM的东西。关于这个JNA COM支持,我有两个相关的问题:COM支持JNA的工作情况如何,是否可以在项目中使用?是否有任何关于使用JNA COM支持的教程,因为COM支持的文档是有限的,我不确定我应该如何使用它。
我猜有第三个问题与JNA和COM有关,它是否允许我获取指向COM对象的指针然后将其传递给本机DLL C类型函数?我差点猜测是因为对象的继承性看起来像COM的东西可以用于从JNA进行标准的本机DLL调用,我只想澄清一下。
最后,虽然我主要询问JNA,因为这是我发现的一种可能的解决方案,但我对其他可能性持开放态度,尽管我更倾向于使用JNA来调用本机DLL函数而不是使用JNI。