<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      VC 軟件發布的故事(1)

      當我們興沖沖把自己寫的小程序傳給朋友,亦或是正式發布產品到用戶手中,時常會遇到“由于應用程序的配置不正確,應用程序未能啟動,重新安裝應用程序可能會糾正這個問題”。

      這么個提示實在是讓人有點氣餒啊,那么怎么解決呢,是什么導致這個問題呢?

      (注意,本文不涉及msvc7.x,因為這個版本的兩個主要產品我接觸很少)

       

      首先,靜態鏈接所有庫是不會遇到這個問題的,但不是所有情況下我們都能靜態鏈接所有庫,特別是存在MFC擴展dll的時候,以及使用了沒有static lib的第三方庫的時候(這些庫可能要求動態鏈接msvcrt)。

       

      msvc6時代沒這個問題,因為程序不能運行會提示缺少xxx.dll,這樣很容易解決,只需要把必要的dll和軟件一起發布就可以了(這個需要注意dll作者的再發布許可協議)。

      msvc8,msvc9引入了所謂的程序集概念(注意不是.net那個意義的程序集,但是借助于這個概念)使用winsxs來避免dll hell,但是(嗯,大家都怕這個但是)卻引入了另一個問題:版本匹配。

      假設下列場景:

      1 我們編譯環境是msvc8或者msvc9,并且始終安裝最新的補丁

      2 發布給用戶編譯出來的binary和msvc8/msvc8sp1/msvc9/msvc9sp1 redist

      3 運行失敗

      這實在是令人倍感挫折,為什么不行了呢?問題的根源在menifest,如果我們打開binary隨帶的menifest,并且檢查相關dll的版本號,會發現版本號遠高于msvc redist里面的,這將導致系統拒絕加載dll,表面現象就是

      “由于應用程序的配置不正確,應用程序未能啟動,重新安裝應用程序可能會糾正這個問題”。

      結論:編譯環境的補丁會將編譯環境的頭文件升級,導致默認配置編譯出來的binary需求更高級的版本號。

      解決辦法:

      msvc8:定義 _USE_RTM_VERSION 宏,這將強制編譯出使用msvc8 rtm版本號的binary。

      msvc9:取消定義 _BIND_TO_CURRENT_VCLIBS_VERSION 宏,這將編譯出使用msvc9 rtm版本號的binary。

      這樣,使用標準的msvc8/msvc8sp1/msvc9/msvc9sp1 redist即可。

      msvc10微軟取消了之前的設計,回歸了msvc6的做法,于是正確的發布應該是下面這樣

      靜態鏈接:這個兼容問題最少,但是無法享受系統補丁帶來的安全和改進。

      動態鏈接:可以依賴系統目錄下的msvcrt dll,這樣系統打補丁就會自動享受系統更新帶來的改進。也可以把msvcrt和自己的binary放在一起,這樣便享受不到系統更新。

      補充說明:有極少數用戶報告即便拷貝msvcrt100.dll之類的文件到系統目錄或者binary目錄,也無法運行,我無法重現,不知道具體原因。

      posted @ 2015-01-17 21:48  Skogkatt  閱讀(540)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 无码成人午夜在线观看| 激情在线一区二区三区视频| 国产美女MM131爽爽爽| 日本黄漫动漫在线观看视频| 亚洲国语自产一区第二页| 人妻少妇精品视频专区| 蜜臀98精品国产免费观看| 男女xx00xx的视频免费观看| 色综合色综合色综合久久| 久久精品免费观看国产| 制服 丝袜 亚洲 中文 综合| 精品久久人人妻人人做精品| 美女爽到高潮嗷嗷嗷叫免费网站| 奇米777四色影视在线看| 国产亚洲av日韩精品熟女| 一区二区精品久久蜜精品| 亚洲AV日韩AV综合在线观看 | 国产乱人伦AV在线麻豆A| 庐江县| 欧美xxxx精品另类| 国产午夜亚洲精品国产成人| 久久人妻公开中文字幕| 国产区一区二区现看视频| 国产真正老熟女无套内射| 夜爽8888视频在线观看| 成人午夜视频一区二区无码 | 国产精品乱一区二区三区| 无码人妻斩一区二区三区| 久久精品人成免费| 亚洲乱码国产乱码精品精| 最近中文字幕国产精品| 亚洲精品亚洲人成在线| 亚洲欧美色综合影院| 久久亚洲精品成人av无| 夜爽8888视频在线观看| 午夜在线欧美蜜桃| 亚洲精品国产中文字幕| 日日碰狠狠添天天爽| 18禁动漫一区二区三区| 国内精品久久人妻无码不卡| 精品乱码一区内射人妻无码|