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