這個(gè)問(wèn)題我已經(jīng)遇到很多次了,只是沒(méi)有記性,在這里記錄一下。這個(gè)問(wèn)題只針對(duì)VC。
問(wèn)題是:
在調(diào)用DLL的程序中刪除DLL中分配的BUFFER會(huì)CRASH。
原因:
由于在VC編譯的時(shí)候可以選擇多種不同的運(yùn)行時(shí)庫(kù),如果調(diào)用DLL的程序與DLL的這個(gè)選項(xiàng)不匹配(例如:DLL采用多線程DEBUG版本,而調(diào)用程序采用多線程DLL版本),那么就會(huì)出現(xiàn)上面的情況。
解決辦法:
很簡(jiǎn)單,只需要讓兩種庫(kù)為同一種就可以了。具體設(shè)置步驟如下:
菜單:項(xiàng)目-》設(shè)置-》C/C++-》代碼生成-》運(yùn)行時(shí)庫(kù)