java - GetProcessImageFileNameA 抛出 ERROR_INVALID_PARAMETER
问题描述
我使用 JNAGetProcessImageFileNameA
从 Kernel32 调用,但每次运行程序时都会得到一个随机结果,要么得到 ERROR_SUCCESS 要么 ERROR_INVALID_PARAMETER。
Memory processName = new Memory(1024);
IntByReference read = new IntByReference(1024);
psapi.GetProcessImageFileNameA(handle, processName, read);
System.out.println(processName.getString(0));
System.out.println(kernel32.GetLastError());
句柄每次都有效,与最终结果无关。
解决方案
第三个参数的函数映射是DWORD nSize
。ADWORD
可以直接映射到 (4-byte) int
。
您已经传递了 an IntByReference
which 是指向 an 的指针int
。
尝试
int read = 1024;