VS2005下的ATL项目,需要在界面上显示网页,我添加了一个WebBrowser控件,然后添加代码:LRESULT CPluginInterfaceTest::OnBnClickedButton3(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
CAxWindow axWnd = GetDlgItem(IDC_EXPLORER2);
         CComPtr<IWebBrowser2> spWB2;
         axWnd.QueryControl(&spWB2);
CString inputContent;
         GetDlgItemText(IDC_INPUT_CONTENT, inputContent);//这里是从textbox中取网址,输入的是http://baidu.com
CString strWebsite = inputContent;
if (spWB2 && strWebsite.GetLength() > 0)
{
CComVariant v;  // empty variant
HRESULT hr = spWB2->Navigate(CComBSTR(strWebsite), &v, &v, &v, &v );
}
     return S_OK;
}
这段代码是参考网上别人可用的写的,但是我的执行的时候却提示  “此程序无法显示网页”这是我查看网页的属性,发现网址已经变成:res://ieframe.dll/dnserrordiagoff_webOC.htm#http://baidu.com/还请大家指教这个问题要如何解决?

解决方案 »

  1.   

    你的代码应该是没问题的。
    搜了一下“res://ieframe.dll”,看来网上有很多你这样的情况。。是不是你中毒了
      

  2.   

    网址填完整了试试 http://www.baidu.com
    可能是域名解析的问题
      

  3.   

    用IE可以打开的,网址填写完整了也是一样的,就算直接写IP都不行
      

  4.   

    dnserrordiagoff_webOC哦,电信的DNS被人污染了
      

  5.   

    总之不是你代码的问题,IE重定向到了错误显示页面。不过URL必须输入完整的路径,IE地址栏会把不完整URL转换成完整路径
      

  6.   

    代码没有问题,是加载dll的程序限制了,谢谢