我有JNI的問題,再次...與DLL文件的JNI問題
這次我的代碼工作...但是...不正確的所有PC上。
我:
- Jar文件 - >我的前衛
- dll文件 - >與本地方法
- 另一dll文件 - >與其他功能。
在我的電腦上所有這些文件都在一個文件夾中。
文件代碼(的.java):
// loading library
try {
Runtime.getRuntime().loadLibrary("E140tests");
setText("Library E140tests.dll was loaded correctly.");
} catch (UnsatisfiedLinkError ex) {
// try load with absolute path
setText("Error: E140tests.dll wasn't loaded!");
setErrorFlag(true);
}
E140tests.dll - >第二文件(在MSVS compileted)
#include "jni.h"
#include "jni_md.h"
#include "Lusbapi.h"
#include "LusbapiTypes.h"
#include "JNITEST2.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: JNITEST2
* Method: ADCinit
* Signature: (LJNITEST2;)V
*/
JNIEXPORT void JNICALL Java_JNITEST2_ADCinit
(JNIEnv* env, jobject, jobject obj) {
...
lusbapi.dll - >第三個文件,與另一種功能。
#ifndef __LusbapiH__
#define __LusbapiH__
// --------------------------------------------------------------------------
// ---------------------------- COMMON PART ---------------------------------
// --------------------------------------------------------------------------
#include <windows.h>
#include "LusbapiTypes.h"
如果我把我的文件放在system32中,所有的都可以。
但是。在另一臺PC(XP,7)我的代碼不起作用!無所謂:如果文件(+ dll)在一個文件夾中,或者dll文件在system32中 - >代碼找不到它們。
我想,這個問題是在運行時庫(MSVS),但德恩我安裝的話,什麼都沒有改變......
(我的電腦上是IntelijIDEA,MSVS,jdk7.xx - >所有作品。我測試了另一臺PC上的prog(安裝了MSVS) - >並且都運行正常,但在另一臺PC上沒有找到(並且安裝了Runtime Libraries))。
我會等待救援)
您是否嘗試使用[Dependency Walker](http://www.dependencywalker.com)檢查依賴關係? – dnk
'錯誤:未找到至少一個必需的隱式或轉發依賴項。 錯誤:找到了具有不同CPU類型的模塊。「在計算機上不起作用... –
系統的架構不起作用以及用於編譯的系統架構是什麼? –