JNI: VS2010中的C++平台 我通过JNI接口编写C++ DLL应用程序,从C++调用java程序。我使用Java8、C++、Visual Studio 2010专业版和Windows 7。我目前正在将配置设置为ACtiveDebug,将平台设置为Activex64

JNI: VS2010中的C++平台 我通过JNI接口编写C++ DLL应用程序,从C++调用java程序。我使用Java8、C++、Visual Studio 2010专业版和Windows 7。我目前正在将配置设置为ACtiveDebug,将平台设置为Activex64,c++,visual-studio-2010,java-native-interface,solution,platform,C++,Visual Studio 2010,Java Native Interface,Solution,Platform,我注意到,如果我选择Activex64作为平台,那么VS不会有任何抱怨。如果我将其更改为Win32,它会抱怨无法打开jni.h。如果我将配置更改为release,平台为x64或Wind32,它将抱怨无法打开jni.h。为什么会这样?有人能解释一下吗 我可以使用configuration=debug和platform=x64构建解决方案并生成dll。然后我可以从其他C++项目中调用这个DLL没有问题。我是否必须将配置更改为release才能将dll释放到系统中?发布和调试的目的是什么 如果有任何人

我注意到,如果我选择Activex64作为平台,那么VS不会有任何抱怨。如果我将其更改为Win32,它会抱怨无法打开jni.h。如果我将配置更改为release,平台为x64或Wind32,它将抱怨无法打开jni.h。为什么会这样?有人能解释一下吗

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

如果有任何人有关于解决方案配置的文档,也请分享

多谢各位

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

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

根据Microsoft许可协议,分发DLL的调试版本是不合法的,因为调试版本使用Microsoft调试运行库。这些调试库仅对具有有效Visual Studio 2010安装的用户可用