错在那里?看我的JNI调用
我首先建一个java文件,代码如下:
package untitled1;
public class testJNI {
public native static int DoPrinterDlg();
static {
System.loadLibrary("DriverManager");
}
public testJNI() {
}
}
编译之后,用dos命令生成.h头文件
javah -jni untitled1.testJNI
用MFC产生一个工程,用的是win32 Dynamic-Link Library生成一个A Simple dll project,include了前面那个头文件后,用c弹出一个对话框,代码如下:
#include "stdafx.h"
#include "jni.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
JNIEXPORT jint JNICALL Java_untitled1_testJNI_DoPrinterDlg
(JNIEnv *, jclass)
{
::MessageBox(NULL,"sdda","Alt",MB_OK);
return 1;
}
问题是:编译通过之后,我运行java,却给出
java.lang.UnsatisfiedLinkError: DoPrinterDlg
at untitled1.JDriverHandle.DoPrinterDlg(Native Method)
的错误。
麻烦各位看看问题到底出在那里!!~~