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);
}

在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)