1. javac, javah
2. Try this! http://www.cnblogs.com/cpcpc/archive/2012/08/13/2636199.html
3. Release *.dll: 生成->编译(要不报错)->生成解决方案->去找 Release\*.dll
4. Java和C++之间传递string http://www.easymorse.com/index.php/archives/1765
javac TestDLL.java
//javah关键点,一直无法找到类,这样set classpath就可以了 http://bbs.youkuaiyun.com/topics/370195082?page=1#post-395485262
set classpath=...\src
javah testDLL.TestDLL
//传string
//头文件 testDLL_TestDLL.h
JNIEXPORT void JNICALL Java_com_liyong_TestNativeCode_TestNativeCode_SendSMS
(JNIEnv *, jobject, jstring);
//TestDLL.cpp
//一个转换jstring成C string的函数
string jstring2str(JNIEnv* env, jstring jstr) {
char* rtn = NULL;
jclass clsstring = env->FindClass("java/lang/String");
jstring strencode = env->NewStringUTF("UTF8");
jmethodID mid = env->GetMethodID(clsstring, "getBytes",
"(Ljava/lang/String;)[B");
jbyteArray barr = (jbyteArray) env->CallObjectMethod(jstr, mid, strencode);
jsize alen = env->GetArrayLength(barr);
jbyte* ba = env->GetByteArrayElements(barr, JNI_FALSE);
if (alen > 0) {
rtn = (char*) malloc(alen + 1);
memcpy(rtn, ba, alen);
rtn[alen] = 0;
}
env->ReleaseByteArrayElements(barr, ba, 0);
string stemp(rtn);
free(rtn);
return stemp;
}
JNIEXPORT void JNICALL Java_com_liyong_TestNativeCode_TestNativeCode_SendSMS(JNIEnv *env, jobject thiz, jstring JavaString)
{
//JAVA String->C char*的转换
string MyJstr=jstring2str(env,JavaString);
const char* MyCstr= MyJstr.c_str();
...
}