【发布时间】:2015-02-26 23:17:55
【问题描述】:
我正在使用 LoadLibrary() 将(服务器)jvm.dll 动态加载到我的 64 位 Visual Studio 2013 C++ 应用程序中,以便使用 JNI 执行本机 Java 代码。
在 VS 调试器中,当 dll 正在加载时,我遇到了一些访问冲突(但如果我在这些之后“继续”,事情似乎可以正常工作);然后在调用一些 JNI 调用时发生严重崩溃。我已经尝试过 Java 1.7 和 Java 1.8 中的 jvm.dll,但遇到了同样的问题。
我怀疑问题是运行时库不兼容。 Dependency walker 表明即使是最新的 jvm.dll 也依赖于 msvcr100.dll(来自 Visual Studio 2010)。我听说过使用不兼容的运行时版本的后果的可怕警告;并在其他情况下亲眼目睹了结果。
还有其他人遇到过这个问题吗?是否有针对 Visual Studio 2013 编译的可用 jvm.dll 版本?
谢谢, 丹
【问题讨论】:
标签: c++ visual-studio-2013 jvm msvcrt