当前页面: 开发资料首页 → J2SE 专题 → 有段c的程序,需要用java写,请熟悉c和java的高手帮忙,谢谢!
有段c的程序,需要用java写,请熟悉c和java的高手帮忙,谢谢!
摘要: 有段c的程序,需要用java写,请熟悉c和java的高手帮忙,谢谢!
程序如下,
char* Decrept(char* source, char* dest, int destlen)
{
int len,i;
len=strlen(source);
if(destlen
*dest=*source-128;
for(i=1;i
{
*(dest+i)=*(source+i)-128+*(dest+i-1);
}
*(dest+len)=0;
return (char*)dest;
}
谢谢!
楼主不如说说这段代码完成了什么功能
c都忘的差不多了
名称已经很清楚了,呵呵,一段c写的加密算法。
解密,说错了。
还是很模糊啊,解密算法不熟悉
呵呵,所以说要熟悉c的高手啊,程序比较简单,但对c和java都熟的人不多,才求救啊。
用jni
*
*Testjava.java文件
*/
public class Testjava
{
static
{
System.loadLibrary("testdll");
}
public native static int CheckPass(String FUserID,String FPassWord);
public static void main(String[] args)
{
Testjava t = new Testjava();
System.out.println(t.CheckPass("admin","12345678"));
}
}
然后用
javac Testjava.java 生成class文件
javah -jni Testjava 生成符合java的c的头文件Testjava.h
然后就是调用你那个功能的函数了,以下是我帮人写得例子
#include
#include "Testjava.h"
#include
void ok(char * a,char *b)
{
printf("%s",a);
printf("%s",b);
}
JNIEXPORT jint JNICALL Java_Testjava_CheckPass (JNIEnv *env, jclass obj, jstring id, jstring pwd)
{
const char* cid = (*env)->GetStringUTFChars(env, id, 0);
const char* cpwd =(*env)->GetStringUTFChars(env, pwd, 0);
printf("%s",cid);
printf("%s",cpwd);
ok((char* )cid,(char*)cpwd);
return 0;
}
怎么那么多人问java调用c,c++的呢,呵呵
看看这个我里面有回答
http://community.csdn.net/Expert/topic/5128/5128179.xml?temp=.5352747
String decrept(String source,String dest,int destlen)
{
int len=dest.length();
char destChar[]=new char[len];
if(destlendestChar[0]=(char)(source.charAt(0)-128);
for(int i=1;i{
destChar[i]=(char)(source.charAt(i)-128+destChar[i-1]);
}
return destChar.toString();
}
不知是否符合楼主的要求
最好还是能改成java的,调用太麻烦,谢谢禅剑飞雪的好代码,收藏先,呵呵。
哦,不好意思,没看到楼上的代码,我测一下,先谢了:)
呵呵,要想保密性好,当然调用c好点了
嗯,改成java的楼上的都写好了,那就免了阿