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后以上代码执行正常

对于Unicode,如果写一个有着广泛使用群体的作品,那肯定是必不可少的。但我用VC,一是因为喜欢C语言,二是喜欢VS的编译器,比Delphi好用,不过Delphi做界面确实爽,而且自带的一些小函数用着也非常方便。之所以不会VC还要用,确实是因为太喜欢了。如果能力所及,也可以用VC写写自己一个人用的小程序,所以Unicode就用不着了,省得老是在ANSI和Unicode之间转来转去的,何况我被MultiByteToWideChar和 WideCharToMultiByte这两个函数的参数搞得晕着转向的,没必要。

posted @ 2011-04-02 00:38  冷寒生  阅读(1317)  评论(0编辑  收藏  举报
IT知识库