【发布时间】:2019-09-12 20:58:03
【问题描述】:
为什么调用winapi函数后缓冲区为空,如何解决?
public interface Kernel32 extends Library {
public boolean GetVersionExA(Pointer lpBuffer);
}
public func(){
Kernel32 lib = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);
Pointer a = new Memory(256);
lib.GetVersionExA(a);
byte[] b=new byte[256];
b = a.getByteArray(0,256);
}
【问题讨论】:
-
是什么让你觉得它是空的?
GetVersionExA()是返回真还是假?顺便说一句,b = new byte[256]是多余的,可以删除:byte[] b = a.getByteArray(0,256); -
@RemyLebeau 我明白了,我的意思是返回零缓冲区