У меня есть Fifp.dll в Фортране с простой функцией void RESET()
и я пытаюсь вызвать его из моего кода Java.
Я сделал простой тестовый класс Java:
public class TestJni {
static {
System.loadLibrary("Fifp");
}
public native void RESET();
}
Я сделал из него файл .h и скомпилировал его.
Я также сделал файл моста myBridge.c:
#include <stdio.h>
#include "TestJni.h"
extern void RESET();
JNIEXPORT void JNICALL Java_TestJni_RESET(JNIEnv *env, jobject obj) {
printf("Before DLL call\n");
RESET();
printf("After DLL call\n");
}
Теперь я не могу его скомпилировать. Это команда, которую я пробовал в командной строке Visual Studio x64:
> cl -I"C:\path\to\jdk\include\win32" -I"C:\path\to\jdk\include" myBridge.c
, а также с параметром -FeFifp.dll
, он выдает мне ту же ошибку:
LNK2019: неразрешенный внешний символ RESET (и основной)
Так что я делаю не так?
Есть ли возможность указать внешнюю DLL для включения?
Правильно ли я выполняю вызов new TestJni().RESET()
?
Любая помощь приветствуется ...