在java 程序调用dll时产生如下错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: xxx.dll: 此操作仅在应用容器上下文中有效。
产生原因:
这是因为在制作dll时候,是按照如下步骤进行的:
1、方法一:
操作“ 文件 | 新建 | 项目... ”,在左侧选择“ Visual C++ | win32” ,主栏中选择“Dll(应用程序)”。下边“名称”填入“jniWin32dll”,点确定。
这样制作的dll的属性是:
vs2012中:
这种方法创建制作出来的dll就会出现如上的错误。
要想执行正确就应该按照如下的方法进行制作dll
2、方法二:
I)、操作“ 文件 | 新建 | 项目... ”,在左侧选择“Visual C++ | win32 ” ,主栏中选择“win32 项目”。下边“名称”填入“jniWin32”,点确定。
Ii)、在win32向导中,选择“Dll”。
vs2012中:
按照这样的方式制作的dll,在java 程序调用的时候就是正常的
PS:但是如果在红色方框中的“ 否” 改为 “是”,
那么制作出来的dll就又会出现如上的错误。