青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Michael's Space

Technology changes the world, serves the people.
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

VC C運行時庫的幾個版本及用法

Posted on 2006-07-27 20:51 奔跑的阿甘 閱讀(11310) 評論(0)  編輯 收藏 引用 所屬分類: SDK/MFC
VC C運行時庫(CRTL)的幾個版本及選用
Michael 2006年7月27日于突尼斯

VC++ C運行時庫(以下簡稱CRTL)是指LIBC.LIB/LIBCMT.LIB/MSVCRT.LIB以及他們對應的DEBUG版本(在名稱后面加"D")。
在VC++ 4.2以前的版本中CRTL包含了C++的iostream庫函數,但是在4.2及以后的版本中(添加了對C++標準庫的支持),iostream庫函數被獨立出來,為支持老的iostream和新的標準iostream函數,4.2及后續版本存在兩套iostream庫,分別是(老的)LIBCI.LIB/LIBCIMT.LIB/MSVCIRT.LIB和(新的)LIBCP.LIB/LIBCPMT.LIB/MSVCPRT.LIB。針對DEBUG版本,分別存在名稱后加"D"的對應庫。并且新老的iostream庫是不兼容的,不能在同一個應用中混合使用。

一 版本特性列表
對CRTL的幾個版本及特性列表(RELEASE&DEBUG Version)如下:
RELEASE版本:
CRTL (without iostream)特性VC編譯選項預編譯宏
LIBC.LIBSingle threaded, static link/ML
LIBCMT.LIBMultithreaded, static link/MT_MT
MSVCRT.LIBMultithreaded, dynamic link (import library for MSVCRT.DLL),對于不同的VC版本對應的DLL名稱不一:
VC1.0-MSVCRT10.DLL
VC2.0-MSVCRT20.DLL
VC4.0-MSVCRT40.DLL
VC4.2-MSVCRT.DLL
VC5.0-MSVCRT.DLL
VC6.0-MSVCRT.DLL
/MD_MT, _DLL

Standard C++ LibraryCharacteristicsOptionDefined
LIBCP.LIBSingle threaded, static link/ML
LIBCPMT.LIBMultithreaded, static link/MT_MT
MSVCPRT.LIBMultithreaded, dynamic link (import library for MSVCRT.DLL),對于不同的VC版本對應的DLL名稱不一:
VC4.2-MSVCPRT.DLL
VC5.0-MSVCP50.DLL
VC6.0-MSVCP60.DLL
/MD_MT, _DLL

Old Iostream LibraryCharacteristicsOptionDefined
LIBCI.LIBSingle threaded, static link/ML
LIBCIMT.LIBMultithreaded, static link/MT_MT
MSVCIRT.LIBMultithreaded, dynamic link (import library for MSVCIRT.DLL)/MD_MT, _DLL

DEBUG版本:
CRTL(without iostream)CharacteristicsOptionDefined
LIBCD.LIBSingle-threaded, static link/MLd_DEBUG
LIBCMTD.LIBMultithreaded, static link/MTd_DEBUG, _MT
MSVCRTD.LIBMultithreaded, dynamic link
(import library for MSVCRxD.DLL)1
/MDd_DEBUG, _MT, _DLL
1???In place of the “x” in the DLL name, substitute the major version numeral of Visual C++ that you are using. For example, if you are using Visual C++ version 4, then the library name would be MSVCR40D.DLL.

Standard C++ Debug LibraryCharacteristicsOptionDefined
LIBCPD.LIBSingle-threaded, static link/MLd_DEBUG
LIBCPMTD.LIBMultithreaded, static link/MTd_DEBUG, _MT
MSVCPRTD.LIBMultithreaded, dynamic link (import library for MSVCRTD.DLL),對于不同的VC版本對應的DLL名稱不一:
VC4.2-MSVCPRTD.DLL
VC5.0-MSVCP50D.DLL
VC6.0-MSVCP60D.DLL
/MDd_DEBUG, _MT, _DLL

iostream Debug LibraryCharacteristicsOptionDefined
LIBCID.LIBSingle threaded, static link/MLd_DEBUG
LIBCIMTD.LIBMultithreaded, static link/MTd_DEBUG, _MT
MSVCIRTD.LIBMultithreaded, dynamic link (import library for MSVCIRTD.DLL)/MDd_DEBUG, _MT, _DLL


二 單線程(Single threaded)和多線程(Multithreaded)的區別

簡單地說,單線程版本提供的CRTL函數不是可重入(Re-entrant)的(只有少部分函數是可重入),多線程版本提供的CRTL函數是可重入的。
對于多線程應用程序來說,如果使用單線程的CRTL將可能導致數據崩潰,因為在同一時間可能有多個線程同時訪問CRTL函數中的某個靜態數據,這個數據在單線程CRTL中不受保護(如果訪問的是棧數據,則沒有問題,因為棧的數據在每個獨立線程中分配)。所以,此時需要使用多線程的CRTL,如果堅持使用單線程CRTL,應用程序必須親自對數據共享訪問進行保護處理,比如設立臨界區。

三 靜態鏈接(Static link)和動態鏈接(Dynamic link)的區別


采用靜態鏈接的應用程序發布后不依賴于CRTL,同時該庫中的代碼和數據在該應用程序調用的其他動態庫中是訪問不到的。
采用動態鏈接的應用程序必須依賴于CRTL(比如MSVCRT.DLL)。
對于動態鏈接CRTL的應用程序,在調用庫函數時需要遵守兩個原則:1)調用習慣為C(__cdecl)習慣;2)函數參數類型為值或者指針類型。

【完】
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品毛片一区二区三区| 国产精品美女一区二区| 久久久久综合网| 亚洲精品国产视频| 国产麻豆日韩欧美久久| 欧美大胆a视频| 久久婷婷丁香| 欧美一区二区三区四区在线| 亚洲最新视频在线| 亚洲高清不卡| 免费影视亚洲| 欧美日韩一区二区国产| 久久久久高清| 久久激情中文| 久久国产高清| 久久久亚洲高清| 久久日韩精品| 久久伊人亚洲| 亚洲视频在线看| 一区二区三区黄色| 在线亚洲免费| 午夜精品久久99蜜桃的功能介绍| 在线一区二区三区做爰视频网站| 亚洲靠逼com| 亚洲日本成人女熟在线观看| 亚洲激情在线观看| 亚洲午夜久久久| 亚洲免费影视第一页| 亚洲欧美激情视频在线观看一区二区三区| 一区二区视频在线观看| 亚洲国产1区| 中文日韩在线| 久久精品久久99精品久久| 另类欧美日韩国产在线| 欧美va天堂在线| 亚洲欧洲久久| 亚洲欧美美女| 亚洲欧美日韩综合| 另类欧美日韩国产在线| 欧美国产在线观看| 国产精品国产三级国产aⅴ浪潮| 国产精品亚洲综合色区韩国| 黄色成人精品网站| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 欧美一区二区视频免费观看| 欧美国产在线电影| 欧美在线精品免播放器视频| 欧美三日本三级三级在线播放| 黄色另类av| 欧美一区二区三区精品| 一区二区三区欧美| 欧美日韩国产系列| 亚洲国产精品成人一区二区| 欧美自拍偷拍午夜视频| 99re66热这里只有精品3直播| 久久在线播放| 好吊妞这里只有精品| 亚洲欧美激情视频| 一区二区三区视频观看| 亚洲午夜av| 欧美精品久久久久a| 在线看成人片| 免费在线看一区| 久久精品国产亚洲精品| 国产人成精品一区二区三| 欧美激情日韩| 欧美丝袜第一区| 狂野欧美一区| 欧美一区二区网站| 亚洲影视综合| 国产精品一区免费观看| 午夜在线精品偷拍| 亚洲五月六月| 国产欧美一区二区精品忘忧草| 亚洲欧美一区二区视频| 亚洲午夜久久久| 国产日韩欧美精品综合| 久久久精品国产99久久精品芒果| 欧美在线观看日本一区| 一色屋精品视频在线观看网站| 欧美a一区二区| 欧美高清你懂得| 中国女人久久久| 亚洲私人影院| 国内精品久久久久久| 久久精品人人| 欧美高清在线播放| 欧美一区二区三区喷汁尤物| 久久av一区二区三区| 亚洲国产精品专区久久| 亚洲青色在线| 国产伦精品一区二区三区| 久久另类ts人妖一区二区| 免费在线观看日韩欧美| 亚洲一区二区三区四区视频| 欧美影院午夜播放| 亚洲美女淫视频| 亚洲免费视频中文字幕| 一区二区在线视频| 亚洲人成在线观看| 国产一区二区欧美| 日韩小视频在线观看| 狠狠色丁香久久婷婷综合_中| 亚洲韩国精品一区| 国产亚洲美州欧州综合国| 亚洲啪啪91| 亚洲国产高清一区二区三区| 亚洲一级免费视频| 亚洲人成在线影院| 久久精品官网| 亚洲欧美一区二区视频| 欧美成在线观看| 久久天天狠狠| 国产精品欧美经典| 亚洲国产精彩中文乱码av在线播放| 国产精品久久久久av| 亚洲国产精品尤物yw在线观看| 国产九色精品成人porny| 亚洲经典三级| 亚洲第一精品影视| 久久狠狠婷婷| 欧美一二三区在线观看| 欧美激情一区二区久久久| 国产女人18毛片水18精品| 亚洲精品视频啊美女在线直播| 黑人操亚洲美女惩罚| 在线亚洲精品| 亚洲综合精品自拍| 欧美日韩aaaaa| 欧美国产日韩精品免费观看| 国产一区二区三区精品久久久| 亚洲视频日本| 亚洲影院高清在线| 欧美性猛交xxxx乱大交退制版| 亚洲国产成人av好男人在线观看| 国模 一区 二区 三区| 欧美影院一区| 久久久久久一区二区| 国产在线播精品第三| 性欧美精品高清| 久久精品国产清自在天天线| 国产欧美日韩在线视频| 亚洲自啪免费| 欧美一区二区成人| 国产欧美日韩伦理| 欧美在线视频导航| 久久综合一区二区| 亚洲国产精品久久久久婷婷884| 久久视频在线视频| 亚洲第一综合天堂另类专| 亚洲精品久久久蜜桃| 欧美美女操人视频| 一本久道综合久久精品| 午夜日韩电影| 国产一区在线看| 久久午夜电影网| 亚洲经典自拍| 亚洲欧美文学| 国产亚洲欧美另类中文 | av成人激情| 欧美日本簧片| 亚洲综合电影一区二区三区| 久久久久久一区二区三区| 亚洲高清一区二| 欧美福利小视频| 亚洲与欧洲av电影| 另类专区欧美制服同性| 亚洲激情网站| 欧美午夜片在线免费观看| 欧美亚洲在线视频| 亚洲福利在线视频| 午夜欧美大片免费观看| 在线国产欧美| 国产精品都在这里| 久久久久久久网| 99re6这里只有精品视频在线观看 99re6这里只有精品 | 久久在线91| 99视频一区二区三区| 久久精品99国产精品| 久久精品一区二区| 亚洲精品网站在线播放gif| 西瓜成人精品人成网站| 亚洲电影观看| 国产精品视频九色porn| 久久国产一二区| 日韩视频免费观看高清在线视频 | 亚洲资源av| 欧美激情精品久久久| 亚洲精品久久久久久一区二区| 国产精品看片你懂得| 老司机精品福利视频| 亚洲一区二区在| 亚洲人成77777在线观看网| 久久动漫亚洲| 中文精品视频| 亚洲三级网站| 一区二区在线看| 国产日韩欧美电影在线观看| 欧美日韩一卡二卡| 欧美电影在线观看|