GetProcessImageFileNameA 抛出 ERROR_INVALID_PARAMETER

GetProcessImageFileNameA throwing ERROR_INVALID_PARAMETER

我正在使用 JNA 从 Kernel32 调用 GetProcessImageFileNameA,但每次我 运行 程序都会得到一个随机结果,我得到 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。一个DWORD可以直接映射到一个(4字节)int.

您传递了一个 IntByReference,它是一个指向 int 的指针。

尝试

int read = 1024;