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

C++ Programmer's Cookbook

{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

動態鏈接庫dll 靜態鏈接庫lib 動態導入庫lib


轉自:http://blog.csdn.net/uniqueren/article/details/4163662

目前以lib后綴的庫有兩種,一種為靜態鏈接庫(Static Libary,以下簡稱“靜態庫”) ,另一種為動態連接庫(DLL,以下簡稱“動態庫”) 的導入庫(Import Libary,以下簡稱“導入庫”) 。 
靜態庫是一個或者多個obj文件的打包,所以有人干脆把從obj文件生成lib的過程稱為Archive,即合并到一起。比如你鏈接一個靜態庫,如果其中有錯,它會準確的找到是哪個obj有錯,即靜態lib只是殼子。 
動態庫一般會有對應的導入庫,方便程序靜態載入動態鏈接庫,否則你可能就需要自己LoadLibary調入DLL文件,然后再手工GetProcAddress獲得對應函數了。有了導入庫,你只需要鏈接導入庫后按照頭文件函數接口的聲明調用函數就可以了。 
導入庫和靜態庫 的區別很大,他們實質是不一樣的東西。靜態庫本身就包含了實際執行代碼、符號表等等 ,而對于導入庫而言,其實際的執行代碼位于動態庫中,導入庫只包含了地址符號表等,確保程序找到對應函數的一些基本地址信息 。

這也是實際上很多開源代碼發布的慣用方式:

1. 預編譯的開發包:包含一些.dll文件和一些.lib文件。其中這里的.lib就是導入庫,而不要錯以為是靜態庫。但是引入方式和靜態庫一樣,要在鏈接路 徑上添加找到這些.lib的路徑。而.dll則最好放到最后產生的應用程序exe執行文件相同的目錄。這樣運行時,就會自動調入動態鏈接庫。

2. 用戶自己編譯: 下載的是源代碼,按照readme自己編譯。生成很可能也是.dll + .lib(導入庫)的庫文件

3. 如果你只有dll,并且你知道dll中函數的函數原型,那么你可以直接在自己程序中使用LoadLibary調入DLL文件,GetProcAddress

DLL: 
動 態鏈接庫 (DLL) 是作為共享函數庫的可執行文件。動態鏈接提供了一種方法,使進程可以調用不屬于其可執行代碼的函數。函數的可執行代碼位于一個 DLL 中,該 DLL 包含一個或多個已被編譯、鏈接并與使用它們的進程分開存儲的函數。DLL 還有助于共享數據和資源。多個應用程序可同時訪問內存中單個 DLL 副本的內容。 
動態鏈接與靜態鏈接的不同之處在于它允許可執行模塊(.dll 文件或 .exe 文件)僅包含在運行時定位 DLL 函數的可執行代碼所需的信息。在靜態鏈接中,鏈接器從靜態鏈接庫獲取所有被引用的函數,并將庫同代碼一起放到可執行文件中。 
使用動態鏈接代替靜態鏈接有若干優點。DLL 節省內存,減少交換操作,節省磁盤空間,更易于升級,提供售后支持,提供擴展 MFC 庫類的機制,支持多語言程序,并使國際版本的創建輕松完成。

API 就是應用程序編程接口。它是能用來操作組件、應用程序或者操作系統的一組函數。典型的情況下,API 由一個或多個提供某種特殊功能的 DLL 組成。 
DLL 是一個文件,其中包含了在 Microsoft? Windows? 下運行的任何應用程序都可調用的函數。運行時,DLL 中的函數動態地鏈接到調用它的應用程序中。無論有多少應用程序調用 DLL 中的某個函數,在磁盤上只有一個文件包含該函數,且只在它調入內存時才創建該 DLL。 
您聽到最多的 API 可能是 Windows API,它包括構成 Windows 操作系統的各種 DLL。每個 Windows 應用程序都直接或間接地與 Windows API 互動。Windows API 保證 Windows 下運行的所有應用程序的行為方式一致。 
注意 隨著 Windows 操作系統的發展,現已發布了幾個版本的 Windows API。Windows 3.1 使用 Win16 API。Microsoft? Windows NT?、Windows 95 和 Windows 98 平臺使用 Microsoft? Win32? API。 
除 Windows API 外,其他一些 API 也已發布。例如,郵件應用程序編程接口 (MAPI) 是一組可用于編寫電子郵件應用程序的 DLL。 
API 傳統上是為開發 Windows 應用程序的 C 和 C++ 程序員編寫的,但其他的編程語言(包括VBA)也可以調用 DLL 中的函數。因為大部分 DLL 主要是為 C 和 C++ 程序員編寫和整理說明的,所以調用 DLL 函數的方法與調用 VBA 函數會有所不同。在使用 API 時必須了解如何給 DLL 函數傳遞參數。 
警告 調用 Windows API 和 其他 DLL 函數可能會給您的應用程序帶來不良影響。從自己的代碼中直接調用 DLL 函數時,您繞過了 VBA 通常提供的一些安全機制。如果在定義或調用 DLL 函數時出現錯誤(所有程序員都不可避免),可能會在應用程序中引起應用程序錯誤(也稱為通用性保護錯誤,或 GPF)。最好的解決辦法是在運行代碼以前保存該項目,并確保了解 DLL 函數調用的原理。

LIB 創建標準庫、導入庫和導出文件,在生成 32 位程序時可將它們與 LINK 一起使用。LIB 從命令提示運行。 
可在下列幾種模式下使用 LIB: 
生成或修改 COFF 庫 
將成員對象提取到文件中 
創建導出文件和導入庫 
這些模式是互斥的;每次只能以一種模式使用 LIB。

posted on 2013-07-15 13:38 夢在天涯 閱讀(2103) 評論(0)  編輯 收藏 引用 所屬分類: CPlusPlus

公告

EMail:itech001#126.com

導航

統計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1811982
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              久久久亚洲欧洲日产国码αv| 亚洲第一狼人社区| 99视频一区二区三区| 欧美三级韩国三级日本三斤| 亚洲尤物精选| 久久激情久久| 亚洲理论电影网| 在线一区亚洲| 激情av一区| 亚洲国产欧美日韩| 国产精品久久久久99| 欧美国产在线电影| 亚洲影音一区| 99re6这里只有精品| 国产精品毛片高清在线完整版| 久久aⅴ乱码一区二区三区| 久久漫画官网| 午夜精品婷婷| 美女主播精品视频一二三四| 一本久久a久久免费精品不卡| 亚洲欧美日韩电影| 亚洲国产一区二区在线| 夜夜嗨av一区二区三区网页| 国产一区久久| 亚洲理论在线| 影音先锋日韩资源| 国产精品99久久久久久宅男| 1769国内精品视频在线播放| 亚洲图片自拍偷拍| 亚洲激情女人| 欧美在线精品免播放器视频| 亚洲最黄网站| 另类av一区二区| 欧美专区在线观看一区| 欧美日韩成人在线视频| 蜜乳av另类精品一区二区| 国产精品久久久久久久久免费樱桃| 欧美va天堂在线| 国产午夜亚洲精品羞羞网站 | 尹人成人综合网| 亚洲一区二区高清| 一区二区精品在线| 美女脱光内衣内裤视频久久影院| 翔田千里一区二区| 欧美久久久久中文字幕| 欧美成人一区二免费视频软件| 国产精品一区二区在线观看| 99成人在线| 亚洲乱码国产乱码精品精| 久久精品五月| 久久久免费观看视频| 国产精品日韩精品欧美在线| 99视频一区二区三区| 一区二区高清在线| 欧美精品一区二区三区蜜臀| 欧美成人精品一区二区| 永久久久久久| 久久亚洲捆绑美女| 久久夜色精品亚洲噜噜国产mv| 国产日韩欧美黄色| 篠田优中文在线播放第一区| 欧美一级在线视频| 国产精品欧美日韩一区| 亚洲一区二区精品| 久久精品国产91精品亚洲| 国产日韩欧美在线视频观看| 亚洲欧美成人网| 久久精品人人做人人综合| 国产亚洲一区二区三区在线观看| 久久超碰97人人做人人爱| 久久婷婷成人综合色| 亚洲承认在线| 欧美经典一区二区三区| 一区二区三区 在线观看视频| 亚洲永久免费av| 国产精品专区一| 久久久久久久性| 亚洲天堂男人| 一区二区三区回区在观看免费视频| 欧美国产日韩xxxxx| 欧美一区二区高清在线观看| 亚洲午夜av在线| 六月婷婷久久| 亚洲嫩草精品久久| 欧美日韩另类一区| 在线免费日韩片| 久久精品免费| 亚洲视频专区在线| 欧美成人精品不卡视频在线观看| 欧美视频精品在线| 亚洲欧洲日韩在线| 欧美一区国产二区| 亚洲免费观看视频| 欧美激情亚洲视频| 亚洲人在线视频| 欧美高清在线观看| 麻豆亚洲精品| 猛男gaygay欧美视频| 蜜臀va亚洲va欧美va天堂| 麻豆国产精品一区二区三区| 国产美女精品| 久久综合精品一区| 一区二区三区精品| 看片网站欧美日韩| 亚洲欧美久久久| 亚洲国产精品黑人久久久| 国产精品高潮呻吟久久| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲一区二区三区午夜| 亚洲第一中文字幕在线观看| 午夜日韩在线| 亚洲精品一区在线| 黑人操亚洲美女惩罚| 欧美午夜视频| 欧美成人黑人xx视频免费观看| 欧美在线999| 亚洲婷婷综合久久一本伊一区| 欧美激情精品久久久久久免费印度| 欧美一区高清| 午夜精品亚洲一区二区三区嫩草| 亚洲欧洲日产国码二区| 怡红院精品视频在线观看极品| 国产精品久久久久影院亚瑟| 欧美日韩国产精品一卡| 欧美成人免费在线| 久久久噜噜噜| 久久国产色av| 欧美主播一区二区三区| 亚洲欧美三级在线| 亚洲欧美成人在线| 亚洲永久免费观看| 亚洲一区二区日本| 亚洲色图综合久久| 一个色综合导航| 中文有码久久| 亚洲一区二区三区乱码aⅴ| 亚洲欧洲一区二区在线观看| 亚洲福利视频网站| 亚洲欧美制服中文字幕| 久久精品国产免费观看| 欧美一区二区在线免费观看| 亚洲欧美日韩中文在线制服| 亚洲调教视频在线观看| 在线视频欧美日韩| 亚洲视频在线观看一区| 亚洲视频香蕉人妖| 亚洲午夜激情| 亚洲欧美在线一区| 久久精品国产一区二区电影| 久久精品在线| 免费成人你懂的| 亚洲激情第一区| 艳妇臀荡乳欲伦亚洲一区| 亚洲图片在线| 欧美制服丝袜第一页| 久久久久久一区二区| 欧美成人三级在线| 欧美日韩日日骚| 国产欧美一区二区精品性 | 欧美激情一区二区三区| 亚洲国产一区二区三区在线播 | 欧美三区视频| 国产日韩欧美| 亚洲国产精品久久| 一二三区精品| 久久狠狠婷婷| 亚洲国产成人精品女人久久久 | 亚洲一二三区在线观看| 欧美一区二区大片| 免播放器亚洲一区| 亚洲免费观看| 久久精品道一区二区三区| 欧美区视频在线观看| 国产美女精品在线| 亚洲人成毛片在线播放| 午夜日韩av| 亚洲电影av在线| 亚洲欧美久久久| 欧美激情第3页| 国产女主播在线一区二区| 亚洲欧洲精品一区二区三区| 欧美一级网站| 亚洲国产精品高清久久久| 亚洲综合国产激情另类一区| 美日韩精品视频| 国产日韩欧美不卡在线| 欧美区在线播放| 美女精品自拍一二三四| 性欧美xxxx视频在线观看| 一区二区欧美国产| 午夜欧美电影在线观看| 久久精品免费播放| 欧美激情五月| 国产欧亚日韩视频| 91久久综合| 久久国产精品网站| 亚洲国产欧美久久| 亚洲欧美日韩网| 欧美成人午夜激情在线| 国产精品黄页免费高清在线观看|