gpt4 book ai didi

java.lang.UnsatisfiedLinkError : Error looking up function 'GetModuleFileNameEx' 错误

转载 作者:行者123 更新时间:2023-11-30 10:29:55 26 4
gpt4 key购买 nike

我正在尝试导入 GetModuleFileNameEx在java应用程序中。函数的定义是:

DWORD WINAPI GetModuleFileNameEx(
_In_ HANDLE hProcess,
_In_opt_ HMODULE hModule,
_Out_ LPTSTR lpFilename,
_In_ DWORD nSize
);

我将其翻译成:

public abstract DWORD GetModuleFileNameEx(
WinNT.HANDLE hProcess,
WinNT.HMODULE hModule,
char[] pathName,
WinNT.DWORD pathNameSize
);

我在类中这样定义的:

 import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.WinDef;
import com.sun.jna.platform.win32.WinNT;
import com.sun.jna.win32.W32APIOptions;


public abstract interface Kernel32Ext
extends Kernel32
{
public static final Kernel32Ext INSTANCE = (Kernel32Ext)Native.loadLibrary("kernel32.dll", Kernel32Ext.class, W32APIOptions.DEFAULT_OPTIONS);
public abstract DWORD GetModuleFileNameEx(WinNT.HANDLE hProcess, WinNT.HMODULE hModule, char[] pathName, WinNT.DWORD pathNameSize);
}

但是当我尝试调用该方法时出现错误:

java.lang.UnsatisfiedLinkError: Error looking up function 'GetModuleFileNameEx': Uvedená procedura nebyla nalezena.

我仔细检查并根据此处关于堆栈溢出和其他 JNA 程序的帖子,LPTSTR 在 JNA API 中正确地转换为 char[]。所以肯定还有别的地方不对劲。我是导入了错误的 dll,还是使用了错误的选项?

我在 Windows 7 x64 位(捷克语,因此是非英语错误消息)上运行它。

最佳答案

在 kernel32(或其他地方)中没有这个名字的函数。请参阅 MSDN 页面以获取 GetModuleFileNameEx .您要查找的函数是 GetModuleFileNameExW

关于java.lang.UnsatisfiedLinkError : Error looking up function 'GetModuleFileNameEx' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43822635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com