这个程序那个地方错了呢? 本帖最后由 itinfm 于 2011-06-26 21:41:15 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你用程序来模拟网页的http通信啊!!这个……嘿嘿,没整过 调试中断在红色的代码处,rev中没有"pass="字符串,应该怎么写呢?-------------------哪里错了呢?Debug下call stack出错在哪里? 错在这一句if(*(p+strlen("pass="))!=0),p指针为空!!!login: int i=SendToIE(s,login); if(i>0) { recv(s,rev,MAXDATASIZE,0); char *p=strstr(rev,"pass="); if(*(p+strlen("pass="))!=0) strcpy(pass,p+strlen("pass=")); } if(strcmp(pass,g_password)!=0) { memset(pass,0,sizeof(char)*MAXDATASIZE); memset(rev,0,sizeof(char)*MAXDATASIZE); goto login; } 你要先判断一下p是否为NULL,当p==NULL时,说明rev里没有 pass= 这个字符串,运行后当然会出错了 改成 login: int i=SendToIE(s,login); if(i>0) { recv(s,rev,MAXDATASIZE,0); char *p=strstr(rev,"pass="); ////////////////////////////////////////////////////////////////////////// if(p==NULL) { memset(pass,0,sizeof(char)*MAXDATASIZE); memset(rev,0,sizeof(char)*MAXDATASIZE); goto login; } ////////////////////////////////////////////////////////////////////////// if(*(p+strlen("pass="))!=0) strcpy(pass,p+strlen("pass=")); } if(strcmp(pass,g_password)!=0) { memset(pass,0,sizeof(char)*MAXDATASIZE); memset(rev,0,sizeof(char)*MAXDATASIZE); goto login; }试试 关于封装函数 如果用mfc开发类似"360安全卫士"这样的软件,是不是建立"dialog based"的工程呢? 关于GDI+双缓冲贴图的问题 一个DAO读写Excel文件的问题。麻烦大家看看! 能否在List Control 中手动输入记录 为什么我的事件不通?来者有分,up,gz有分 哪里有CIH病毒方面的资料 关于服务程序的两个疑问 gdicomment这个API函数有么有人用过吗? 关于MFC多线程控制多个软件执行顺序怎么实现 请用过VC2010的高手谈谈 vc 连接 服务器上的oracle 本机上有客户端
-------------------
哪里错了呢?Debug下call stack出错在哪里?
int i=SendToIE(s,login);
if(i>0)
{
recv(s,rev,MAXDATASIZE,0);
char *p=strstr(rev,"pass=");
if(*(p+strlen("pass="))!=0)
strcpy(pass,p+strlen("pass="));
}
if(strcmp(pass,g_password)!=0)
{
memset(pass,0,sizeof(char)*MAXDATASIZE);
memset(rev,0,sizeof(char)*MAXDATASIZE);
goto login;
}
int i=SendToIE(s,login);
if(i>0)
{
recv(s,rev,MAXDATASIZE,0);
char *p=strstr(rev,"pass=");
//////////////////////////////////////////////////////////////////////////
if(p==NULL)
{
memset(pass,0,sizeof(char)*MAXDATASIZE);
memset(rev,0,sizeof(char)*MAXDATASIZE);
goto login;
}
//////////////////////////////////////////////////////////////////////////
if(*(p+strlen("pass="))!=0)
strcpy(pass,p+strlen("pass="));
}
if(strcmp(pass,g_password)!=0)
{
memset(pass,0,sizeof(char)*MAXDATASIZE);
memset(rev,0,sizeof(char)*MAXDATASIZE);
goto login;
}试试