Я пытался использовать SWIG в своем проекте. Кажется, я что-то упускаю. Пожалуйста помоги. Что я сделал до сих пор на основе этого руководства: http://web.mit.edu/svn/src/swig-1.3.25/Examples/java/class/index.html:
1.создал заголовок Header.h с помощью Visual Studio
class Test {
public:
Test();
~Test();
void showNumber();
private:
int number;
};
2.создан интерфейс swig
/* File : Header.i */
%module Header
%{
#include "Header.h"
%}
/* Let's just grab the original header file here */
%include "Header.h"
3. В CMD запустите:
swig -c++ -java Header.i
4. Создан SwigTest3.cpp
#include "Header.h"
#include <iostream>
Test::Test() {
number = 12;
}
Test::~Test() {
}
void Test::showNumber() {
std::cout << "Number: " << number << std::endl;
}
5. Создал 64 dll из файлов cpp и h с помощью Visual Studio.
6. Создан класс Java main.java
public class main{
static{
try {
System.load("E:\\C++ projects\\SwigTest3\\SwigTest3\\SwigTest3.dll");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
System.exit(1);
}
}
public static void main(String argv[]){
System.out.println("Hello");
Test te = new Test();
}
}
7. Запуск main.java дает мне
Hello
Exception in thread "main" java.lang.UnsatisfiedLinkError: HeaderJNI.new_Test()J
at HeaderJNI.new_Test(Native Method)
at Test.<init>(Test.java:38)
at main.main(main.java:13)
Все файлы находятся в одной папке. Пожалуйста, скажите мне, что я делаю неправильно.