0

我们有一个混合 Java/JRuby 项目,它使用在 Microsoft Visual Studio 中开发的 C++-DLL。最近,这个 DLL 的供应商将他们的开发环境升级到 Visual Studio 2015 专业版。这需要在我们的机器(在 Windows 7 上运行)上安装新的运行时库 (vcredist_x86.exe)。在我们这样做之后,一切都按预期工作。

但是,我们也使用服务器(Microsoft Windows Server 2003 R2 Standard Edition Service Pack 2)来运行回归测试。我安装了新的运行时库,并加载了 DLL。但是当程序运行时,fopen当 DLL 尝试加载某个文件时,我们会得到一个错误。errno给出 2(ENOENT根据errno.h)。该文件存在,DLL 尝试使用相对路径加载它。它不是第一个通过 打开的文件fopen,并且对其他文件的访问似乎有效。

我无权访问源代码,无法在服务器上调试,DLL 的开发人员无法重现该问题。

更新到 Visual Studio 2015 后,有没有人在 Windows Server 上遇到过类似的问题?如果是这样,你是如何解决的?

4

1 回答 1

0

DLL 的供应商可能使用了与 Server 2003 不兼容的默认工具集 v140。如果您使用 Server 2008 进行测试,我怀疑您会没事的。或者,如果他们能够使用 v140_xp 工具集,我怀疑你会没事的。该选项在这里:配置属性->常规->平台工具集

于 2016-02-23T14:09:00.093 回答