Сообщение от
_nic
ну если sizeof() неподходит ,то что вместо него использовать?
char *buf=new char[(1024*1024)*10];
....
ReadFile(f,buf,sz,&rb,0)
....
MessageBox(0,CurrToStr((int)sizeof(buf)).c_str()," !!!",MB_OK);
Зачем вообще тут sizeof? Я чего-то недопонимаю? Точное количество записанных в buf байт в переменной rb. Зачем извращать-то там, где не надо? Что мешает это значение использовать?
Код:
if(sz<(1024*1024)*10){ReadFile(f,buf,sz,&rb,0);send(s,buf,strlen(buf),0);break;}
}
strlen(buf) - тоже самое. Зачем, когда rb уже содержит нужное значение?
Код:
if(sz<(1024*1024)*10){ReadFile(f,buf,sz,&rb,0);send(s,buf,rb,0);break;}
}
Да и потом strlen может херню вернуть ибо вы пишите
Данные с помощью ReadFile из бинарного файла
http://www.cplusplus.com/reference/clibrary/cstring/strlen.html
The length of a C string is determined by the terminating null-character
....
У тебя ноль где-нибудь в середине буфера будет и будет не айс ведь. половину только отошлешь