关于java中的JNI

来源:百度知道 编辑:UC知道 时间:2024/09/22 04:03:12
我现在要写一个java的本地方法类似于C++中的方法,C++中的方法原型如下:
int WINAPI JBKPowerOn(int Handle, char *pszATR, DWORD *pdwLen)
参数 : Handle int I 读写器句柄
pszATR char* O IC卡复位应答信息.
pdwLen DWORD* I/O 输入时是数据缓冲区的大小,输出时是获取数据的实际长度.
返回 : int : = 0 成功
!= 0 失败 (错误类型参见错误码定义文件 -hxgcJrCardErrCode.h)
怎么样在java中书写此函数,将读书的数据保存在一个参数中

你先在java里写这么一个类,其中包含这个最终要调用的native的方法,然后用javah生成C++的头文件,然后根据这个头文件用C++写这个方法的实现,最后编译C++生成的dll放到java项目的classpath里即可。

其中这个native的方法也许可以这么写(没测试不知道是否正确):

public native int JBKPowerOn(int handle, String pszATR, Integer pdwLen);

对不对要看javah生成的头文件是否能满足你的需求。