--------------------------------------------Java Call Win32 API-----------------------------------------
下载地址:http://www.jinvoke.com/calling-the-win32-api-from-java
简单的例子:
import com.jinvoke.JInvoke;
import com.jinvoke.NativeImport;
public class HelloWindows {
@NativeImport(library="User32",function="MessageBox")
public static native int showMessage(int hwnd,String text,String caption,int type);
public static void main(String[] args){
JInvoke.initialize();
showMessage(0,"Hello welcome","hello-world",0);
}
}
注解方式有三种:
1 @NativeImport 连接上本地DLL,调用DLL内的方法
2 @NativeStruct represent a native structure (a C struct) as a Java class.
3 @Embedded define fixed-size strings and arrays in structs.
--------------------------------@NativeStruct例子--------------------------------------------------
Struct C :
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;
java.class:
@NativeStruct
public class SYSTEMTIME {
public short wYear;
public short wMonth;
public short wDayOfWeek;
public short wDay;
public short wHour;
public short wMinute;
public short wSecond;
public short wMilliseconds;
}
-------------------------------------@Embedded例子------------------------------------------------------
Struct C:
typedef struct _SHFILEINFO {
HICON hIcon;
int iIcon;
DWORD dwAttributes;
TCHAR szDisplayName[MAX_PATH];
TCHAR szTypeName[80];
} SHFILEINFO;
java.class
@NativeStruct
public class ShFileInfo {
public int hIcon;
public int iIcon;
public int dwAttributes;
@Embedded(length=260)
public StringBuffer szDisplayName = new StringBuffer(260);
@Embedded(length=80)
public StringBuffer szTypeName = new StringBuffer(80);
}
分享到:
相关推荐
包里有jinvoke所需的JAR包和jinvoke源码,和自己下载的一些学习jinvoke的文档和例子,在这里总结在一块,方便大家的学习!
jinvoke.jar与jinvoke.dll文件及其Demo,只适用于window32位。现在用JNA比较多
包含jna.jar,JNative.jar,jinvoke.jar,VC++创建DLL例子,VC++调用DLL例子,JAVA、JNA、JNative、jinvoke调用DLL例子
JInvoke资源包、源代码、doc文档、例子、教程一并打包上传,关于JInvoke的资源不用再去其他地方找了
之前windows有一个invoke,可以很轻松的调用windows api,这让很多java编程人员很羡慕,现在jinvoke作为一个开源项目,正好在次突破,希望有助与你
J/Invoke enables Java developers to easily invoke native methods (such as the Win32 API or C-based Windows DLLs and Unix dynamic libraries) with pure Java code. Unlike error-prone JNI programming ...
java 调用dll用到的工具,两个开源包 jar,
使用jinvoke.jar可以直接调用windows的api函数,如果用jni的话需要写c代码和参数转换
使用java swing 写的客户端程序,防止调试程序运行漏洞 也可以调用windows api zip包里面包含 jinvoke.jar 工具类,里面可以对32和64位的jdk使用,有两个dll,自行替换就可以 程序都是通过测试的,并且是上生产了