似乎FOREIGN_THREAD_START_ROUTINE
类(在 C 中似乎是LPTHREAD_START_ROUTINE
类的 JNA 表示形式)可能已损坏, /或者不是该类的完整实现。我从来没有发现它可以正常工作,甚至无法成功创建它的实例。
Kernel32 函数CreateRemoteThread
要求使用它作为参数,但是我没有找到实际创建它的实例以及任何临时的相同类的方法。引发了“ 无效的内存访问”异常。创建它的新实例时,它始终会引发异常,并显示以下错误消息:
Exception in thread "main" java.lang.Error: Structure.getFieldOrder() on class com.sun.jna.platform.win32.WinBase$FOREIGN_THREAD_START_ROUTINE returns names ([foreignLocation]) which do not match declared field names ([])
但是它也具有 ONLY (无参数)构造函数,并且没有声明为抽象,因此必须重写getFieldOrder
方法并重新声明foreignLocation
成员(它已在类中声明,但已声明为私有,并且getFieldOrder
在类本身中不被覆盖,因此foreignLocation
成员不可用于{{1}中声明的getFieldOrder
方法}类)对于我来说似乎是不好的设计。
简而言之:
Structure
类是否真正起作用,如果可以,如何成功实例化它?
任何帮助将不胜感激!