c语言增强,C语言提高-day5
動態庫的封裝與設計
socketclient.lib:資源模式文件,描述socketclient.dll
socketclient.dll:動態庫(函數二進制碼集合,里面有函數的函數體)
一:導入與導出函數的匹配
?在DLL代碼中,必須明確聲明導出函數:(windows下)
__declspec(dllexport) int MyFunction(int n);
僅有導入和導出聲明并不能使應用程序內部的函數調用鏈接到相應的DLL文件上。應用程序的項目必須為鏈接程序指定所需的輸入庫(lib文件)。而且應用程序事實上必須至少包含一個對DLL函數的調用。?
二:與DLL模塊建立鏈接
三:使用符號名鏈接與標識號鏈接
采用標識號鏈接的應用程序exe文件體積相對較小,因為不必包含導入函數的長字符串符號名
?動態庫內存釋放問題:
可以在dll函數中編寫一個釋放內存函數
?內存泄露使用
1.memwatch可以跟蹤程序中的內存泄漏和錯誤,能檢測雙重釋放(double-free)、錯誤釋放(erroneous
free)、沒有釋放的內存(unfreed
memory)、溢出(Overflow)、下溢(Underflow)等。?
2.memwatch根本是不需要安裝的,因為它只是一組C程序代碼。需要做的是:
①在代碼中加入 memwatch.c 和 memwatch.h,一起編譯、鏈接
②預處理器定義 MEMWATCH、MW_STDIO
ufreed
log
總結
以上是生活随笔為你收集整理的c语言增强,C语言提高-day5的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 《病中得樊大书》第一句是什么
 - 下一篇: “荒村破屋经年卧”下一句是什么