使用 JNA 调用 Gdi32.GetObject

Invoke Gdi32.GetObject with JNA

我已经为 JNA 创建了一个本机库映射以调用 Gdi32 库,"GetObject"。 See: MSDN

我的映射看起来像这样:

int GetObject(HANDLE hgdiobj, int cbBuffer, Pointer lpvObject);

但是这个签名好像不正确。调用引发此异常:

Exception in thread "JavaFX Application Thread" java.lang.UnsatisfiedLinkError: Error looking up function 'GetObject': The specified procedure couldn't be found.

怎么了?

您需要的信息可以在您链接的文档中找到。该文件的底部是这样的:

DLL                       Gdi32.dll
Unicode and ANSI names    GetObjectW (Unicode) and GetObjectA (ANSI)

换句话说,该函数在名为 Gdi32.dll 的 DLL 中找到。并且有两个版本,一个 Unicode 版本和一个 ANSI 版本,具有适当的后缀名。您可能正在尝试绑定到一个名为 GetObject 的函数,该函数不存在。