从Java调用Windows颜色系统

我需要从Java调用Windows颜色系统函数。 在本教程之后,我尝试使用Java Native Access调用DLL函数。 本教程中的所有示例均正常工作。 当我尝试加载和使用Mscms.dll(WCS库之一)DLL似乎已成功加载,但我无法调用任何函数。 function列表在这里 。

我收到一条消息:

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.lang.UnsatisfiedLinkError,这意味着它无法在Mscms.dll中找到函数“GetColorDirectory”。 从源代码http://msdn.microsoft.com/en-us/library/dd316928%28v=vs.85%29.aspx查看链接,您应该尝试使用Unicode名称GetColorDirectoryW。