如何解决为什么需要Visual C ++可再发行组件?
我正在安装GTA 5,还安装了Visual C ++可再发行组件。这使我对某些事情感到好奇,因为这经常发生。
据我所知,这些是链接到VC ++库所必需的,但是我已经在系统上安装了.NET 4.8。
我认为,当C ++(托管)被编译为MSIL时,它将仅使用标准的.NET Framework库。
从本质上讲,问题在于,由于存在.NET Framework库,为什么还需要安装其他特定于VC ++的库?
谢谢!
解决方法
C ++编译为本机代码,并且不使用.NET运行时。它使用VC ++运行时(*),可以将其静态或动态链接。在后一种情况下,这需要VC ++可重新分发。
(*)从技术上讲,可以使用VC ++构建一个应用程序,该应用程序完全不使用VC ++运行时,但是会牺牲语言功能并且不常见。
诸如C++/CLI之类的托管样式会编译为混合模式程序集,这些程序集仍然具有具有相同要求的非托管零件。
,简单答案:
“。NET运行时”适用于C#,就像“ Visual C ++运行时”适用于C ++
说明:
用C#或“托管代码”编写的应用程序需要安装特定版本的.NET运行时。 .NET运行时不仅包含虚拟机代码的解释器,而且还提供了应用程序开发人员可能在其代码中引用的所有标准类库。用C#编写的应用程序将需要在目标计算机上安装.NET运行时。
用C / C ++或“本机代码”编写的应用程序通常与一组库链接,以提供语言标准提供的一组通用功能和类(例如printf
和std::string
) 。应用程序开发人员可以选择将这些功能直接静态链接到他的EXE。但是,动态链接这些库的DLL版本通常是有利的,这样它们就可以在整个系统或应用程序内的二进制文件之间共享。因此,可再发行软件包。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。