Я пытаюсь создать DLL, которая будет вызывать Qt (в настоящее время я не могу использовать Jambi для нужной мне функциональности). У меня есть простой метод Java:
public final native int createChild(int handle);
Я создал проект C в Visual Studio Express 2010 и смог собрать DLL.
Затем я создал проект в Qt creator и переместил туда свои источники. Я попытался настроить сборку, насколько мне известно, но все, что я получил, это:
java.lang.UnsatisfiedLinkError: tools.proofofconcept.control.EmbedderComposite.createChild(I)I
Я предполагаю, что символ неправильно экспортируется из DLL. Я добавил -D_JNI_IMPLEMENTATION_ компоновщик arg:
g++ -D_JNI_IMPLEMENTATION_ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -shared -mthreads -Wl -Wl,--out-implib,debug\libqt_integration.a -o debug\qt_integration.dll debug/dllmain.o debug/nativecode.o debug/qmfcapp.o debug/qwinwidget.o debug/moc_qwinwidget.o -L"c:\Qt\2010.05-rc1\qt\lib" -lQtGuid4 -lQtCored4