3

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

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

假设我编写并成功编译了一个由一个简单的 'cout << "hi";' 组成的程序 Visual C++ 中的语句。运行程序的机器是否需要安装 .NET Framework?

所谓的 Common Language Runtime 和 Microsoft Visual C++ Redistributable Packages(我理解为另一种运行时)有什么区别?

4

1 回答 1

3

如果您正在使用它,则只需要 .NET 框架。一个简单的cout << "hi";程序绝对不需要额外的包/框架就可以在任何 DOS/Windows(假设它是一个控制台应用程序)平台上成功运行。

但是,如果您正在使用 .NET 框架的任何功能 - 那么,如预期的那样,您需要它存在于目标计算机上。

至于可再发行 - 这是 MSDN 的摘录:

此软件包安装 C 运行时 (CRT)、标准 C++、ATL、MFC、OpenMP 和 MSDIA 库的运行时组件

这意味着如果您将它们用作 DLL,则需要此包中的库 (DLL)。您仍然可以轻松地将大部分需要的组件直接链接到您的可执行文件中,在这种情况下,您不需要 DLL。您可以指定您更愿意为库的代码使用共享 DLL 资源,在这种情况下,您需要目标机器上的 Redistributable 运行时。

于 2012-07-14T09:31:39.553 回答