可能重复:
在 Windows 2000 中使用 Visual Studio 2010 编译的 C++ DLL 时出现问题
与这些问题类似:
我可以将 Visual Studio 2010 的 C++ 编译器与 Visual Studio 2008 的 C++ 运行时库一起使用吗?
VS2010 可以创建在 Windows 2000 下运行的本机可执行文件吗?
我有 C++ 代码,我在 WinXP 机器上使用 VS2010 (CL 版本 16.00.30319.0)从命令行(使用CL.EXE )编译,但我希望生成的本机(x86)可执行程序在 Win2000、WinXP 上运行, ETC。
旧版本的 CL(VC98,版本 12.00.8186)可以很好地完成这项工作,但是 VS2010 版本会生成一个可执行文件,在 Win2000 上运行时会导致弹出错误:
foo.exe不是有效的 Win32 应用程序
解决方案必须采用CL 编译器或链接器选项的形式,而不是 VisualStudio 设置或属性。我不需要任何较新的 C++ 语言功能,因为代码已经有几年历史了,并且可以移植到其他操作系统,而且我只需要本机代码(x86,而不是 .NET 或 CLI)可执行文件。
(有关示例,请参见http://david.tribble.com/src/crlf.cpp和http://david.tribble.com/src/detab.cpp。)
我想我可以在我的新开发环境(WinXP,最终是 Windows 7)上继续使用旧的编译器(VS 9.0),但这似乎不是一个理想的解决方案。当然,MS 仍然提供了一种方法来创建向后兼容旧但仍然存在的 Windows 操作系统的本机可执行文件?