一般說來,如果同一段代碼,一個寫成DLL,一個作爲函數直接定義,則DLL調用肯定要慢一些。原因如下: 一個程序如果要使用DLL中的函數,則必須經過,如下步驟: 1、將DLL文件裝入內存,win32的方法是 :LoadLibrary(...); 2、取得指定的函數的入口地址,方法好像是: GetProcessAddr(.....) 3、通過函數指針,調用函數。 而直接在程序中定義函數,則沒有前兩步,函數的入口地址在程序裝入時就確定了。
採用靜態連接方式使用動態庫,也就是在項目中添加了XXX.DLL的LIB文件,並沒有使用動態連接方式,中的函數與調用自己寫的函數,在調用過程上基本沒有差異,故所花時間應該相近。