C++ 如何在没有任何依赖库的情况下在VisualStudio中构建dll?

C++ 如何在没有任何依赖库的情况下在VisualStudio中构建dll?,c++,c,visual-studio,dll,java-native-interface,C++,C,Visual Studio,Dll,Java Native Interface,我已经用VisualStudio创建了一个DLL,并编写了一个JNI接口来使用Java应用程序中的DLL。我已经成功地从我的电脑上运行了DLL。但是当我从另一台机器上运行Java应用程序时,我遇到了以下错误:Java.lang.unsatifiedLinkError:C:\Users\user.jss\windows\project.DLL:找不到依赖库。当我在其他电脑上安装Visual Studio时,此问题已解决。Visual Studio中是否有任何设置可在创建DLL时删除此依赖项 感谢您

我已经用VisualStudio创建了一个DLL,并编写了一个JNI接口来使用Java应用程序中的DLL。我已经成功地从我的电脑上运行了DLL。但是当我从另一台机器上运行Java应用程序时,我遇到了以下错误:Java.lang.unsatifiedLinkError:C:\Users\user.jss\windows\project.DLL:找不到依赖库。当我在其他电脑上安装Visual Studio时,此问题已解决。Visual Studio中是否有任何设置可在创建DLL时删除此依赖项


感谢您的帮助。

什么是project.dll?这是JNIDLL的名称吗?您必须随Java应用程序提供依赖于平台的本机库及其所有运行时依赖项。如果由于project.dll需要MSVC运行时而失败,则可以随应用程序一起提供运行时,或者使用其他工具链(如MinGW)避免运行时。

问题在于计算机上没有project.dll,而不是VS设置。它存在于计算机上。我想我有vc runtime dependency.project.dll是由JAR文件通过JNI使用的。你是指运行时与MSVC相关的DLL吗?移植到MinGW并不容易,因为我使用windows SDK中的winscard库。这解释了为什么需要额外的运行时DLL。最简单的答案是让您的安装程序检查适当的MSVC运行时,如果它不存在,请安装它。或者,您可以尝试以牺牲project.dll文件大小为代价静态链接运行时依赖项。感谢您的解释。如果您的第二个解决方案能够解决我的问题,那就更好了。有没有一种方法可以静态链接到vc运行时?我搜索并阅读了这篇文章,与我的问题相似。但是当我使用/NODEFAULTLIB链接器选项时,我会收到数千个未解决的外部错误。我不确定MSVC世界是否支持静态链接。我知道有一些MSDN操作指南,但我不确定它们是否适合您的用例。非常感谢Alex。我已经静态链接了运行时。在配置属性->C/C++->代码生成->运行库中。我将发布模式更改为多线程/MT选项,即多线程DLL。我能够在没有VC运行时的情况下从其他机器上运行Java应用程序。