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