我们有一个混合的Java / JRuby项目,它使用C ++ - 在Microsoft Visual Studio中开发的DLL。最近,这个DLL的供应商将他们的开发环境升级到Visual Studio 2015专业版。这需要在我们的机器(在Windows 7上运行)上安装新的运行时库(vcredist_x86.exe)。在我们这样做之后,一切都按预期工作。
但是,我们还使用服务器(Microsoft Windows Server 2003 R2标准版Service Pack 2)来运行回归测试。我安装了新的运行时库,并加载了DLL。但是当程序运行时,当DLL尝试加载某个文件时,我们会收到fopen
错误。 errno
根据ENOENT
提供2(errno.h
)。该文件存在,DLL尝试使用相对路径加载它。它不是通过fopen
打开的第一个文件,并且对其他文件的访问似乎有效。
我无法访问源代码,无法在服务器上进行调试,DLL的开发人员无法重现该问题。
更新到Visual Studio 2015后,是否有人在Windows Server上遇到类似问题?如果是这样,你是如何解决的?
答案 0 :(得分:0)
DLL的供应商可能使用了与Server 2003不兼容的默认工具集v140。如果您使用Server 2008进行测试,我怀疑您会没事的。或者,如果他们能够使用v140_xp工具集,我怀疑你会没事的。该选项在此处:配置属性 - >一般 - >平台工具集