У меня проблема с JNI, опять же ...Проблемы JNI с файлами dll
На этот раз мой код работает ... Но ... не правильный на всех ПК.
У меня есть: файл
- 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 -> второй файл (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, все работает тоже.
Но. На другом ПК (xp, 7) мой код не работает! Не имеет значения: если файлы (+ dll) находятся в одной папке или файлы dll находятся в system32 -> код не может их найти.
Я думал, что проблема в Runtime Libraries (MSVS), но Венна я их, ничего не изменилось ...
(на моем компьютере являются IntelijIDEA, МСВС, jdk7.xx -> все работает. Я тестировал прог на другом ПК (с установленным MSVS) -> и все работало, но на другом -> dll не было найдено (и с установленными Runtime Libraries)).
я буду ждать помощи)
Вы пытались изучить зависимости с помощью [Dependency Walker] (http://www.dependencywalker.com)? – dnk
'Ошибка: по крайней мере одна требуемая неявная или перенаправленная зависимость не найдена. Ошибка: были найдены модули с разными типами процессоров. 'На компьютере не работает ... –
Какова архитектура системы, которая не работает, и архитектура системы, которая используется для компиляции? –