關於調用動/靜態鏈接庫的問題

一般說來,如果同一段代碼,一個寫成DLL,一個作爲函數直接定義,則DLL調用肯定要慢一些。原因如下:
 
一個程序如果要使用DLL中的函數,則必須經過,如下步驟:
1、將DLL文件裝入內存,win32的方法是 :LoadLibrary(...);
2、取得指定的函數的入口地址,方法好像是: GetProcessAddr(.....)
3、通過函數指針,調用函數。
 
而直接在程序中定義函數,則沒有前兩步,函數的入口地址在程序裝入時就確定了。

      採用靜態連接方式使用動態庫,也就是在項目中添加了XXX.DLL的LIB文件,並沒有使用動態連接方式,中的函數與調用自己寫的函數,在調用過程上基本沒有差異,故所花時間應該相近。

發佈了48 篇原創文章 · 獲贊 14 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章