[英]Calling a getversion function from kernel32.dll on java
我正在尝试从Java上的kernel32.dll调用Getversion函数。 我希望运行一个运行该功能的Java应用程序。 但是,我发现可用的信息非常混乱,无处可寻。
但是从这里开始我一无所知...我是Java的初学者(以及其他地方的程序员)。 有任何想法吗? 提前致谢。
您不需要放入OS运行时已经设置的kernel32.dll。 只要记住,您的路径中某处存在dll。
getVersion函数的原型是这里在MSDN网站。
DWORD WINAPI GetVersion(void);
您可以确认该函数属于“ kernel32”函数。
据我所知,有两种实现方法。
首先,您可以像这样输入主条目
public static void main(String[] args) {
testGetVersion();
testGetVersion2();
}
第二种方法比第一种简单。
private static void testGetVersion2() {
Function versionFunc = Function.getFunction("kernel32", "GetVersion");
DWORD versionNum = null;
versionNum = (DWORD)versionFunc.invoke(DWORD.class, null);
System.out.println("Version is ... " + versionNum.toString());
}
让我们更深入地讨论这个主题。
private static void testGetVersion() {
DWORD versionNum = Kernel32Me.INSTANCE.GetVersion();
System.out.println("Version is ... " + versionNum.toString());
}
因此,您应该为Windows系统原型拥有自己的类。 Kernel32Me界面可能有点复杂。
public interface Kernel32Me extends StdCallLibrary {
final Kernel32Me INSTANCE
= (Kernel32Me) Native.loadLibrary("kernel32.dll", Kernel32Me.class, W32APIOptions.DEFAULT_OPTIONS);
DWORD GetVersion();
}
我认为您现在可以拥有自己的操作系统版本。
这可能是我回答的重点 。
祝好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.