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