c++ - MSVC:未解析的外部符号“__imp_JNI_GetCreatedJavaVMs”
问题描述
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 安装,我匆忙中并没有意识到这一点。)
推荐阅读
- javascript - 删除 Unicode 代码的转义
- docker - 当文件从 Docker-compose 中的主机映射卷更改时,热重载失败
- c - 在 while 循环中使用函数(在 Atom 中有效,但在 VIM 中无效)
- java - Kotlin 对 Java 类的引用
范围 - sql - BigQuery 更新与内部联接
- c# - C# 乘法表 - 仅显示 1 个乘法
- sql - 在 2 个表之间打印不匹配的记录
- r - 从 .npz 文件重建 R 中的大型稀疏矩阵
- java - 请求有关可视化工具的 Android Kotlin 音频分析的建议
- mysql - SQL 语句在复制到 mysql> 时运行良好,但是当它作为脚本运行时出现错误 1064