我遇到一個好糾結的問題,一直不知道原因在哪,蛋都碎了:
主工程:
char Msg[1024];
check(Msg);//dll
Addstring(Msg);
DLL:
int check(*msg)
{
cstring buff="";
strcpy(msg,"");
buff.format("xxxxxx%d,%d",int1,int2);
strcat(msg,"buff");
buff.format("xxxxxx%d,%d",int3,int4);
strcat(msg,"buff");
...
buff.format("xxxxxx%d,%d",intx,inty);
strcat(msg,"buff");
return 1
}
代碼如上,問題是:
DLL沒有異常,在運行至主工程Addstring(Msg)時會錯誤;
檢查發現控制Msg大小在512以內時可以正常運行,超出512則會報錯。
但主工程已經定義1024空間了呀?
請問這是為什麼呢??
代碼不完整 ,你的項目中其他地方 肯定有 比較明顯的BUG