P.650,《A . 1 . 1 调用固有方法》一节中,例程: 登录后复制 #include <windows.h> #include "ShowMsgBox.h" BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, void** lpReserved) { return TRUE; } JNIEXPORT void JNICALL Java_ShowMsgBox_ShowMessage(JNIEnv * jEnv, jobject this, jstring jMsg) { const char * msg; msg = (*jEnv)->GetStringUTFChars(jEnv, jMsg,0); MessageBox(HWND_DESKTOP, msg, "Thinking in Java: JNI", MB_OK | MB_ICONEXCLAMATION); (*jEnv)->ReleaseStringUTFChars(jEnv, jMsg,msg); } 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16. 在Microsoft Visual Studio 2010中不能正常编译,在网上找到的以下代码段能正常运行,可参考一下: 登录后复制 #include "ShowMsgBox.h" #include <math.h> #include <stdio.h> JNIEXPORT void JNICALL Java_ShowMsgBox_ShowMessage (JNIEnv *env, jobject obj, jstring s){ const char* szStr=(env)->GetStringUTFChars(s,0);//两个参数 printf("string=[%s]",szStr); env->ReleaseStringUTFChars(s,szStr);//两个参数 } (https://www.cnblogs.com/alon/archive/2009/03/30/1425525.html) 1.2.3.4.5.6.7.8.9.10. 原创作者: u_16183536 转载于: https://blog.51cto.com/u_16183536/11918692