//编成动态文件MyNativeDll.dll public class MyNative{ static{ System.loadLibrary( "MyNativeDll" ); } private native void showParmsJni( String s, int i, boolean b ); public void showParms( String s, int i, boolean b ){ showParmsJni( s, i , b ); } } //测试程序 import java.awt.event.*; public class JniTest{ public static void main( String[] args )throws Exception{ MyNative obj = new MyNative(); obj.showParms( "Hello", 23, true ); obj.showParms( "World", 34, false ); } }//compile.bat 编译测试程序 javac JniTest.java -d . pause//run.bat java -classpath . JniTest pause我的所有文件都在一个目录中! 现在我也能生成一个DLL文件,但是,我运行不也它,主要是无法使用这个DLL。出现异常如下: Exception in thread "main" java.lang.UnsatisfiedLinkError: showParms0 at MyNative.showParms0(Native Method) at MyNative.showParms(MyNative.java:3) at JniTest.main(JniTest.java:5)我的所有文件都在同个目录中,我也不知道为什么不行,大哥请指点一下吧! 谢谢。
参数 -I 指定 include 文件的目录
我怎么用Dev-C++来编译dll?
DLLWRAP=dllwrap.exe
DEFFILE=yourlib.def
STATICLIB=yourlib.a$(BIN): $(LINKOBJ)
$(DLLWRAP) --output-def $(DEFFILE) --implib $(STATICLIB) $(LINKOBJ) $(LIBS) -o $(BIN)
能不能再解决详细些!$(BIN): $(LINKOBJ)
$(DLLWRAP) --output-def $(DEFFILE) --implib $(STATICLIB) $(LINKOBJ) $(LIBS) -o $(BIN)$是什么? $(BIN):是什么? $(LIBS)是什么? 到底怎么弄啊?
dllwrap --output-def yourdeffile your.o your.lib -o yourdllGood luck.
Compiler 增加以下参数:-DBUILDING_DLL=1
Linker 增加以下参数:--no-export-all-symbols --add-stdcall-alias
重新编译一下就可以了。
或者在你的makefile.win 中直接修改LIBS为:
LIBS = -L"E:/application/Dev-Cpp/lib" --add-stdcall-alias --no-export-all-symbols
public class MyNative{
static{
System.loadLibrary( "MyNativeDll" );
}
private native void showParmsJni( String s, int i, boolean b );
public void showParms( String s, int i, boolean b ){
showParmsJni( s, i , b );
}
}
//测试程序
import java.awt.event.*;
public class JniTest{
public static void main( String[] args )throws Exception{
MyNative obj = new MyNative();
obj.showParms( "Hello", 23, true );
obj.showParms( "World", 34, false );
}
}//compile.bat 编译测试程序
javac JniTest.java -d .
pause//run.bat
java -classpath . JniTest
pause我的所有文件都在一个目录中!
现在我也能生成一个DLL文件,但是,我运行不也它,主要是无法使用这个DLL。出现异常如下:
Exception in thread "main" java.lang.UnsatisfiedLinkError: showParms0
at MyNative.showParms0(Native Method)
at MyNative.showParms(MyNative.java:3)
at JniTest.main(JniTest.java:5)我的所有文件都在同个目录中,我也不知道为什么不行,大哥请指点一下吧!
谢谢。