从C ++编译的.exe可以从Win 2000开始独立运行吗?

时间:2019-06-03 05:40:01

标签: c++ windows programming-languages exe

我正在开发一个应在Windows服务器和Win2K及更高版本的客户端上运行的应用程序。它使用基于Windows的测试自动化脚本语言AutoIT进行编码,但是我的客户(政府机构)使用的安全代码分析工具不支持该语言,因此担心应用程序可能无法获得批准。

我正在寻找一种替代语言来开发该工具。已编译的.exe不需要任何尚未在生产系统中安装的运行时依赖项-十年来没有人愿意繁琐的工作旧的旧系统将于2023年淘汰。对于初学者而言,这意味着运行时不依赖Python或.NET。暂时也没有JRE。不确定应该检查哪些其他软件。

此应用程序仅需要在Windows上运行。谷歌搜索后,似乎无法在未安装.NET的情况下使用C#。另一种选择是C ++。 C ++ .exe是独立的吗?我7年前在学校只用C ++编写过代码,那时我不需要提交编译后的代码。我还有什么其他选择?

1 个答案:

答案 0 :(得分:4)

简短答案:转到Visual Studio 2008,这将使您能够构建C / C ++程序,该程序可以编译为独立的EXE,并且仍可以在Windows 2000上运行,而无需安装其他依赖项。使用Google查找VS2008 Service Pack的下载位置。

Wikipedia

  

Visual Studio 2008是支持Windows定位的最新版本   C ++应用程序为2000。

在Visual Studio中,有一个名为运行时库的项目设置,它将使您编译的EXE能够静态链接到Visual Studio C / C ++运行时,而不是采用DLL依赖关系。我不记得VS2008是否要求将MSVCRT DLL“复制”到EXE所在的目录或正式“安装”。因此,最好的选择是仅使用静态链接的运行时库选项,而不必担心它。见下图。假设您没有调用Windows 2000之后引入的API,则以这种方式链接的EXE在复制到目标计算机后才可以工作。

使用新版本的Visual Studio生成的

EXE不能保证在Windows的较早版本上运行。通常由C-Runtime兼容性本身来控制。这就是为什么我要向您介绍Visual Studio 2008的原因-它是针对Windows 2000的最后一个受支持的版本。

enter image description here