MSVC:未解析的外部符号"__imp_JNI_GetCreatedJavaVMs"

MSVC: Unresolved external symbol "__imp_JNI_GetCreatedJavaVMs"

本文关键字:imp JNI GetCreatedJavaVMs 符号 外部 MSVC      更新时间:2023-10-16

Edit2:忘了提到我正在尝试构建一个 64 位应用程序。

我在这里需要一些帮助。

出于某种原因,在您询问之前,我似乎找不到使这种外部工作的方法。 我试过调用 LoadLibrary:

// (temp)
// Load JVM library since it's being a dork
HINSTANCE hVM = LoadLibraryA("C:\Program Files\Java\jdk1.8.0_172\jre\bin\server\jvm.dll");
if (hVM == NULL) { ... }

我将每个 lib 文件夹都包含在 VC++ 目录中,我也尝试jvm.lib放在同一个目录中,并通过杂注注释链接它:#pragma comment(lib, "jvm.lib")但似乎没有什么能完成这项工作。:/我可能一开始就看错了文件吗?我也尝试过像jawt.lib这样的其他人。

编辑:我从#include <jvmti.h>获得该功能,但没有相应的.lib.dll文件。每个类似的函数都来自jvm,所以如果不是那个,它是哪一个?我迷路了。

我的错,我认为它适用于 32 位和 64 位应用程序,但似乎仅适用于 32 位应用程序。(使用的是 32 位 JDK 安装,在我匆忙中我没有意识到这一点。