2011-06-15 87 views
0

我正在通过Windows中的Java/JNI调用本地方法。基本没问题。我的问题是我不知道其中一种方法的确切方法签名。我有它的名字。从Java的Native方法获取方法签名

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

+0

难道你不知道你要调用哪种方法直到运行时?我想这是你想要在本地文件中做的事情.dll – antlersoft 2011-06-15 22:32:58

+0

如果你在运行时知道该方法的正确签名,你会怎么做?很难用这种方式调用一个函数(除非你想创建所有可能的参数排列......没有很好的概念)。我不明白你为什么不能从导出表中查找sig并使用它? – Voo 2011-06-15 22:43:53

+0

你想在Java端创建本地方法,还是你已经有权访问Java端的本地接口?如果你确实可以在整个反射中查询所有的java重载方法。 – Zecas 2012-05-16 17:01:23

回答

0

不,你从JNI命名约定中得到的所有内容都是导出函数的名称 - 甚至在库不使用RegisterNatives()的情况下也是如此。你也知道前两个参数是指针。从这里开始,您可以像对其他未记录的导出函数一样,尝试反汇编函数。