zoukankan      html  css  js  c++  java
  • Visual C++ 运行库

      我们用Visual C++ XXXX (XXXX代表2005,2008,2010等)编译器编写的应用程序,要使其能在没有安装Visual C++ XXXX编译器的目标电脑上运行,必须在目标电脑上安装对应的Microsoft Visual C++ XXXX运行库。安装后,将提供对C、标准C++、ATL、MFC、OpenMP以及MSDIA等类库的运行时支持。例如:要运行Visual C++ 2008编写的应用程序,需在目标电脑上安装Microsoft Visual C++ 2008 SP1 Redistributable Package。

     

      当我们在微软的官方网站上搜索下载Microsoft Visual C++ XXXX Redistributable时会发现有许多不同的版本,下面我们以Microsoft Visual C++ 2008 Redistributable为例来讲解下常见版本。

    Microsoft Visual C++ 2008 Redistributable的常见版本如下:

    Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)

    Microsoft Visual C++ 2008 SP1 Redistributable Package (x64)

    Microsoft Visual C++ 2008 Redistributable Package (x86)

    Microsoft Visual C++ 2008 Redistributable Package (x64)

     

    其中,x86表明适用于32位系统,x64表明适用于64位系统。

            SP1相当于版本号,表明是最新的,所以,我们应当安装最新版本:SP1版本。

    注意:64位操作系统上既能运行32位应用程序,也能运行64位应用程序,所以在64位操作系统上,应根据应用程序是32位的还是64位的,来选择是安装x86版本还是x64版本的Visual C++运行库。

     

      在没有安装Microsoft Visual C++ XXXX运行库的电脑上运行Microsoft Visual C++ XXXX发布的应用程序,一般会报这样的错误:无法启动这个应用程序,因为应用程序的设定不正确,重新安装应用程序应该可以修复这个问题。所以,一般在启动程序时根据是否报此错误来判断有没有安装对应的Visual C++运行库。

     

      其实,我们也可以在没有安装Visual C++ XXXX运行库的目标电脑上运行Visual C++ XXXX发布的应用程序。采取的方案只能是在编译链接应用程序时采用静态链接,设置Use MFC in a Static Library属性即可,如下图所示:

     

    默认情况下使用VC新建的工程都是采用动态链接,即Use MFC in a Shared DLL。

      当设定Use MFC in a Static Library时,将采用静态链接的方式编译链接应用程序。虽然可以使运行该程序的目标电脑不用安装对应的Visual C++运行库,但是,由于静态链接会将用到的对应库文件加载到生成的应用程序中,会明显增大生成的可执行文件的大小,在执行时也需要更多的系统资源,在装入内存时也会消耗更多的时间。(例如我用Visual Studio 9.0编写的一简单的MFC对话框程序,采用动态链接时程序大小为600KB,采用静态链接时程序大小为2.16MB)。

    具体应根据实际情况来选择静态链接还是动态链接,但一般情况下会选择动态链接并在程序运行的目标电脑上安装对应的Visual C++运行库。

  • 相关阅读:
    CefSharp.v49.0.1浏览器控件完全WPF版,实现禁止弹出新窗口,在同一窗口打开链接,并且支持带type="POST" target="_blank"的链接
    C#动态调用WebService
    WPF实现窗体中的悬浮按钮
    Oracle树结构查询按层级排序
    WPF自定义TabControl样式
    WPF自定义Window窗体样式
    C# 实现图片压缩
    C# 图片反色处理 图片夜间模式
    C#中多线程中变量研究
    EasyNetQ操作RabbitMQ(高级消息队列)
  • 原文地址:https://www.cnblogs.com/Hisin/p/2421865.html
Copyright © 2011-2022 走看看