当使用VC++开发的程序需要在目标计算机上安装.NET Framework时,何时需要MS VC++ Redistributable Package?

3
背景:我主要用Java编程,但偶尔会调用在VC++中编译的.dll文件中包含的一些函数。我正在尝试制作一个安装程序包,以检查我的程序的先决条件。我正试图理解目标计算机何时需要安装.NET Framework才能运行我的程序,以及何时需要Microsoft Visual C++ Redistributable Package。

我相信以下问题将有助于我理解我的主要问题的答案:

如果我在Visual C++中编写并成功编译了一个只包含一个简单的“cout <<“hi”;”语句的程序,那么打算运行该程序的计算机是否需要安装.NET Framework?

所谓的公共语言运行时和Microsoft Visual C++ Redistributable Packages之间有什么区别(我了解到这是另一种类型的运行时)?


在不同的机器上运行时,您遇到了什么错误?也许它并没有询问 .NET Framework。 - Ajay
没有错误,很抱歉,也许我不应该说“我正在尝试”。我更想知道在运行使用vc++开发的应用程序之前需要哪些先决条件。 - Rene Garcia
你只需要安装正确的VC++ Redistributable软件包。这意味着 - 正确的VC版本,正确的服务包和正确的机器(32位或64位)。 - Ajay
1个回答

3
如果您没有使用.NET框架,那么一个简单的cout << "hi";程序在任何DOS/Windows平台上都不需要其他软件包/框架才能成功运行(假设它是一个控制台应用程序)。
但是,如果您使用了.NET框架的任何功能,则需要将其安装在目标计算机上。
至于可再分发组件-以下是MSDN的摘录:
此软件包安装C Runtime (CRT)、标准C++、ATL、MFC、OpenMP和MSDIA库的运行时组件
这意味着,如果您将它们用作DLL,则需要从该软件包中获取库(DLL)。您仍然可以将大多数所需组件直接链接到可执行文件中,这样就不需要DLL。或者,您可以指定您希望使用共享DLL资源来管理库的代码,在这种情况下,您需要在目标计算机上安装可再分发运行时。

1
谢谢您的回复。您能否提供更多信息或链接,详细说明如何将所需组件直接链接到可执行文件中?我需要在目标机器上安装可再发行运行库,因为我需要msvcr100.dll文件。 - Rene Garcia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接