java调用c++。具体怎么做,网上有很多的例子。要用到jni
用的一个自己的小程序的一部分来做例子。
获得java的参数:
JNIEXPORT jint JNICALL Java_client_GetCSR
(JNIEnv *en, jobject, jstring mac, jstring SerialNumber, jstring IP,
jstring pwd1) {
CAClient mycaclient;
int i = -1;
char* macpath = new char[en->GetStringLength(mac) + 1];
char* SerialNumberpath = new char[en->GetStringLength(SerialNumber) + 1];
char* IPpath = new char[en->GetStringLength(IP) + 1];
char* pwd1path = new char[en->GetStringLength(pwd1) + 1];
strcpy(macpath, (char*)en->GetStringUTFChars(mac,0));
strcpy(SerialNumberpath, (char*)en->GetStringUTFChars(SerialNumber,0));
strcpy(IPpath, (char*)en->GetStringUTFChars(IP,0));
strcpy(pwd1path, (char*)en->GetStringUTFChars(pwd1,0));
i = mycaclient.GetCSR(macpath, SerialNumberpath,IPpath, pwd1path);
delete[] macpath;
delete[] SerialNumberpath;
delete[] IPpath;
delete[] pwd1path;
return i;
}
返回给java:
JNIEXPORT jstring JNICALL
Java_Getrandom_displayGetrandom (JNIEnv *env, jobject obj)
{
return env->NewStringUTF(uchRand);
}