[英]Java loading a DLL that export methods from another DLL in JNI
我做了一個DLL,它從JNI中的另一個DLL導出方法。
JNIEXPORT bool JNICALL getIsWordInPhonemListFR(const char* word)
{
isWordInPhonemListFR method = NULL;
BOOL fRunTimeLinkSuccess = FALSE;
HINSTANCE hGetProcIDDLL = LoadLibrary(L"PhoneticEngineFR2.dll");
if (!hGetProcIDDLL) {
std::cout << "kcould not load the dynamic library" << std::endl;
}else{
method = (isWordInPhonemListFR)GetProcAddress(hGetProcIDDLL, "isWordInPhonemListFR");
}
return method(word);
}
Java中的System.load沒有給出任何錯誤,但是當我想使用本機方法時,我得到了
java.lang.UnsatisfiedLinkError:
這兩個DLL都在我的項目中的同一文件夾中。 在Visual Studio中工作時工作正常,但JNI中的導出存在問題。 JNI onLoad也不會在Java中觸發。
謝謝
我很笨,我所有的JNI導出方法都有一個命名空間。 因此,它們沒有被執行。 現在可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.