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这两个函数的参数搞得晕着转向的,没必要。

转自:http://blog.csdn.net/tg2003/article/details/6296307

posted @ 2012-01-09 11:00  stma  阅读(343)  评论(0编辑  收藏  举报