我正在通过JNI接口编写一个C ++ dll应用程序,以从C ++调用Java程序。我正在使用Java8,C ++,Visual Studio 2010 Professional和Windows7。我当前将配置设置为ACtive(Debug),平台设置为Active(x64)。

我注意到,如果我选择Active(x64)作为平台,那么VS不会有任何抱怨。如果我将其更改为Win32,它将抱怨“无法打开jni.h”。如果我将配置更改为发布平台,即x64或Wind32,它也会抱怨“无法打开jni.h”。为什么是这样?谁能解释?

我可以使用configuration = debug和platform = x64构建解决方案并生成dll。然后,我可以从其他c ++项目中调用此dll,没有问题。我是否必须更改配置以释放以将dll释放到系统?发布和调试的目的是什么?

如果有人拥有有关解决方案配置的文档,请也分享。

谢谢。

最佳答案

对于include问题,请确保您的项目配置指向jni.h存在的目录。这基本上就是您需要做的。

对于调试和发布,如果打算将JNI DLL分发给第三方(例如,客户),则必须构建发布版本。不同之处在于,发行版本将使用“发行” Microsoft运行时库,该库可以免费分发到任何PC。

分发DLL的调试版本是非法的(根据Microsoft许可协议),因为该调试版本使用Microsoft Debug运行时库。这些调试库仅对具有有效Visual Studio 2010安装的人员可用。

关于c++ - JNI:VS2010中的C++平台,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26361627/

10-15 04:19