易截截图软件、单文件、免安装、纯绿色、仅160KB

Java与C++语言在JNI下的交互

java环境下调用VC++编写的动态链接库文件
一,开发平台:
MyEclipse 6.0,VC++6.0
二,JNI基础知识:
JNI(java native interface),JAVA本地接口调用,目的是为了JAVA可以调用本地程序。
三,交互过程:
1,建立java类。例如,建立一个RSA加密解密的类:
package zkxx.ctais2.client.common;
public class RsaEncrypt {
/**
* @param args
*/
public native String GetKeys();
public native String Encrypt(String source,String PublicKey);
public native String Decrypt(String cipher,String PrivateKey);
static {
System.loadLibrary("RSAEncrypt");
}
public static void main(String[] args) {
}

2,生成C++语言的头文件:
1)注意:利用javah工具生成头文件需要注意,类的包结构,和class文件存储的路径。
例如:本地class文件存储路径:E:\lclai\lclai\src\
包结构应为:E:\lclai\lclai\src\com\org\lclai
RsaEncrypt.java应该存放在包路径下。
2)CMD命令提示符下进入E:\lclai\lclai\src\com\org\lclai路径
输入命令:javac RsaEncrypt.java
回车。
把生成的class文件拷贝到路径E:\lclai\lclai\src\
CMD命令提示符下进入E:\lclai\lclai\src\
输入命令:javah -classpath E:\lclai\lclai\src -jni E:\lclai\lclai\src\com\org\lclai\RsaEncrypt
回车。
在路径E:\lclai\lclai\src\便会生成以包结构和类名结合的头文件。
3,编写cpp文件
cpp文件头需要包含刚刚生成的.h文件,此外还需要包含jni.h.
// RSAEncrypt.cpp : Defines the initialization routines for the DLL.
//
#include "stdafx.h"
#include "RSAEncrypt.h"
#include "CryptoPP32.h"
#include "zkxx_ctais2_client_common_RsaEncrypt.h"
#include "jni.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//
// Note!
//
// If this DLL is dynamically linked against the MFC
// DLLs, any functions exported from this DLL which
// call into MFC must have the AFX_MANAGE_STATE macro
// added at the very beginning of the function.
//
// For example:
//
// extern "C" BOOL PASCAL EXPORT ExportedFunction()
// {
// AFX_MANAGE_STATE(AfxGetStaticModuleState());
//


相关文档:

航空公司管理系统(VC++ 与SQL 2005)

系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
      这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......

JAVA获取系统信息

Properties props=System.getProperties(); //系统属性
System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));
System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));
System.out.println("Java供应商的URL:"+props.getProperty("java.vendor.url"));
Syste ......

Java 时间操作

1.计算某一月份的最大天数
Calendar time=Calendar.getInstance();
time.clear();
time.set(Calendar.YEAR,year); //year 为 int
time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0          
int day=time.getActualMaximum(Calendar.DAY_OF_MONTH) ......

java 保留2位小数

java  保留2位小数  转载
方式一:
四舍五入
double   f   =   111231.5585;
BigDecimal   b   =   new   BigDecimal(f);
double   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP). ......

java优秀书籍


      
 
1)Java Language Specification, Third Edition (by James Gosling) 
 
     本书由Java技术的发明者编写,是Java TM编程语言的权威性技术指南。如果你想知道语言之构造的精确含义,本书是最好的资源。      
&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号