[跪求解决办法]VC6 下很平常的方法 到 VC 7.1 为何不好使了.

曲滨_銘龘鶽 2005-05-22 01:28:40
公司最近要将原来VC6 的一个程序升级到 VS2003 下的 VC7.1

下面如此简单的代码竟然不好用了,我搞了3天还没解决(最可气是在VC6下一切正常)
主要问题是 CSocket() 榜定 CArchive 后 m_pIn->IsBufferEmpty() 老是 TRUE
---代码如下
BOOL result = TRUE;
char byte;
char buf[2048];
memset(buf,' ',sizeof(buf));
m_pFile = new CSocketFile(m_pSock); //m_pSock Type CSocket()
m_pIn = new CArchive(m_pFile,CArchive::load);
m_pOut = new CArchive(m_pFile,CArchive::store);

TRY
{

if(m_pIn->IsLoading())
{
WORD i=0;
//循环一次取一字节
do
{
m_pIn->Read((void*)&byte,1);
buf[i]=byte;
i++;
}while(!m_pIn->IsBufferEmpty()&&i<len); //这里比较郁闷 m_pIn->IsBufferEmpty() 老是 TRUE
memcpy(receivebuf, buf,len);

}
else
result = FALSE;
}
CATCH(CFileException,e)
{

//略
}
END_CATCH
//向会发数据代码略
return result;
}



-------------------------------
这样的代码比较多,而且有很多都是继承 CSocket() 在 OnReceive 读取的
请问各位大侠是否有,解决办法(100 分不购可以在加,我还有 800 多分)


如果 用 CAsyncSocket 或 C++ socket 函数直接读没问题
礼拜天了都我还在加班解决这个问题,大家可怜可怜我吧.
不会帮忙顶也好
...全文
160 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjh135 2005-05-24
  • 打赏
  • 举报
回复
为什么要改在VC7。1中,这是个不成熟的环境
曲滨_銘龘鶽 2005-05-23
  • 打赏
  • 举报
回复
难道 VC7.1 IsBufferEmpty() 已经不再支持,对网络数据是否读取完的判断了吗?
DooDu 2005-05-22
  • 打赏
  • 举报
回复
不会,帮顶了
曲滨_銘龘鶽 2005-05-22
  • 打赏
  • 举报
回复
没人理我了怎么?
曲滨_銘龘鶽 2005-05-22
  • 打赏
  • 举报
回复
没人?

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧