CHttpFile获取网页源码
运行环境:VS2005, ANSI字符集
void CHelloView::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CInternetSession Sess;
CHttpFile *Http = NULL;
CString HtmlSource = "";
char Buf[1024];
USES_CONVERSION;
Http = ( CHttpFile* ) Sess.OpenURL( "http://www.baidu.com" );
//Http->ReadString( HtmlSource );
while( Http->ReadString( ( LPTSTR ) Buf, 1024 ) )
{
HtmlSource += Buf;
}
::SetWindowText( GetDlgItem( IDC_RICHEDIT22 )->m_hWnd, HtmlSource );
Sess.Close();
Http->Close();
}
由于VS2005默认的字符集为Unicode,所以ReadString回来的数据全是乱码,将字符集改为ANSI后以上代码执行正常
/*下面这段话,这篇文章的作者和我有一样的看法,Delphi只需要加个控件,只需要写一行代码就可以Get网页,VC还在写这么多代码,真烦人。而为什么我要选择这两门语言?因为开始的时候我想开发游戏外挂,VC驱动教程比较多,就这样开始了。*/
对于Unicode,如果写一个有着广泛使用群体的作品,那肯定是必不可少的。但我用VC,一是因为喜欢C语言,二是喜欢VS的编译器,比Delphi好用,不过Delphi做界面确实爽,而且自带的一些小函数用着也非常方便。之所以不会VC还要用,确实是因为太喜欢了。如果能力所及,也可以用VC写写自己一个人用的小程序,所以Unicode就用不着了,省得老是在ANSI和Unicode之间转来转去的,何况我被MultiByteToWideChar和 WideCharToMultiByte这两个函数的参数搞得晕着转向的,没必要。