jni Exception in thread "main" java.lang.UnsatisfiedLinkError: xxx.dll: 此操作仅在应用容器上下文中有效。

在java 程序调用dll时产生如下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: xxx.dll: 此操作仅在应用容器上下文中有效。


产生原因:

这是因为在制作dll时候,是按照如下步骤进行的:

1、方法一:

操作“ 文件 | 新建 | 项目... ”,在左侧选择“ Visual C++ | win32” ,主栏中选择“Dll(应用程序)”。下边“名称”填入“jniWin32dll”,点确定。

这样制作的dll的属性是:

vs2012中:

jni Exception in thread "main" java.lang.UnsatisfiedLinkError: xxx.dll: 此操作仅在应用容器上下文中有效。_第1张图片

这种方法创建制作出来的dll就会出现如上的错误。

要想执行正确就应该按照如下的方法进行制作dll

2、方法二:

I)、操作“ 文件 | 新建 | 项目... ”,在左侧选择“Visual C++ | win32 ” ,主栏中选择“win32 项目”。下边“名称”填入“jniWin32”,点确定。

Ii)、在win32向导中,选择“Dll”。

vs2012中:


按照这样的方式制作的dll,在java 程序调用的时候就是正常的


PS:但是如果在红色方框中的“ 否” 改为 “是”,

那么制作出来的dll就又会出现如上的错误。

你可能感兴趣的:(jni Exception in thread "main" java.lang.UnsatisfiedLinkError: xxx.dll: 此操作仅在应用容器上下文中有效。)