【问题标题】:Getting a Method Signature from a Native method, from Java从原生方法获取方法签名,来自 Java
【发布时间】:2011-06-15 22:29:39
【问题描述】:

我正在努力在 Windows 中通过 Java/JNI 调用本机方法。基础没问题。我的问题是我不知道其中一种方法的确切方法签名。我有它的名字。

有人知道从 Java 端加载的 DLL 中获取导出方法和签名的方法吗?

【问题讨论】:

  • 直到运行时才知道要调用哪个方法?我想这是你想在原生 .dll 中做的事情
  • 如果您在运行时知道该方法的正确签名,您会怎么做?以这种方式调用函数非常困难(除非你想创建所有可能的参数排列......没有很好的概念)。我不明白为什么你不能只从导出表中查找 sig 并使用它?
  • 您想在 Java 端创建本机方法还是已经可以访问 Java 端的本机接口?如果你这样做了,你可以在整个反射过程中查询所有的 java 重载方法。
  • 这不是运行时问题,它是在没有适当文档的情况下尝试了解 DLL 中可用的方法。

标签: java dll methods java-native-interface method-signature


【解决方案1】:

不,您从 JNI 命名约定中得到的只是导出函数的名称——即使在库不使用 RegisterNatives() 的情况下也是如此。您还知道前两个参数是指针。从这里,您可以尝试像对任何其他未记录的导出函数一样反汇编该函数。

【讨论】:

    猜你喜欢
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    相关资源
    最近更新 更多