昨天做一個(gè)dll,代碼很快寫完了,然而使用得時(shí)候總是遇到string內(nèi)部指針刪除錯(cuò)誤,郁悶了一天,今天沒去公司,好好研究了一下。首先看下下面這段代碼,聲明兩個(gè)string對(duì)象:
調(diào)試狀態(tài)下可以看到內(nèi)部指針:s1=0x00364ff9s2=0x00365061然后執(zhí)行
按下f11,進(jìn)入xstring源文件:
繼續(xù)進(jìn)入assign(_X)函數(shù):
這樣結(jié)果就是調(diào)用=號(hào)以后,s2地址和s1地址一樣,都是0x00364ff9。假如我們動(dòng)態(tài)庫(kù)有這樣一個(gè)類class DLL接口:
在客戶調(diào)用時(shí)候: