【发布时间】:2014-07-19 14:50:57
【问题描述】:
我需要从 Java 调用 Windows 颜色系统函数。在this tutorial 之后,我尝试使用 Java Native Access 调用 DLL 函数。本教程中的所有示例都可以正常工作。当我尝试加载和使用 Mscms.dll(WCS 库之一)时,DLL 似乎已成功加载,但我无法调用任何函数。函数列表为here。
我收到一条消息:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'GetColorDirectory'
我的代码有什么问题?你能帮帮我吗?
import com.sun.jna.Library;
import com.sun.jna.Native;
public class WCS_test {
public interface Mscms extends Library {
// http://msdn.microsoft.com/en-us/library/dd316928%28v=vs.85%29.aspx
boolean GetColorDirectory(String pMachineName, String[] pBuffer, int pdwSize);
}
private static Mscms mscms = (Mscms) Native.loadLibrary("C:/Windows/system32/Mscms.dll", Mscms.class);
public static void main(String[] args) {
if (mscms != null)
System.out.println("Library loaded\n");
else
System.err.println("Library loading error\n");
String[] pBuffer = new String[1024];
mscms.GetColorDirectory(null, pBuffer, pBuffer.length);
}
}
【问题讨论】:
标签: java windows colors system call