gpt4 book ai didi

c++ - 没有源代码的 JNI (UnsatisfiedLinkError)

转载 作者:太空宇宙 更新时间:2023-11-04 13:43:30 25 4
gpt4 key购买 nike

我需要通过 Java JNI 调用用 C++ 编写的 COM 对象。我没有 COM 对象 API 的文档,所以我想知道是否有办法“查询”对象本身。我有一个用 VBA 编写的示例,它调用 COM 对象上的一个函数,但是当我尝试使用 JNI native 方法复制相同的调用时,出现以下错误。我假设我在其中一个参数类型或返回类型中犯了错误(VBA 没有定义返回类型)。

Exception in thread "main" java.lang.UnsatisfiedLinkError: MyWrapper.functionOne(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V
at MyWrapper.funtionOne(Native Method)
at MyWrapper.main(MyWrapper.java:22)

最佳答案

您不能通过 JNI 直接调用 COM 对象。 JNI 用于调用已使用 JNI 语法和对象声明的函数。

如果您想直接调用,则需要使用 Java Native Access(JNA) 库。它与 .Net P/Invoke 语法非常相似。

参见:https://github.com/twall/jna

关于c++ - 没有源代码的 JNI (UnsatisfiedLinkError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26864626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com