你定一个CWebBrowser2的变量,然后与webbrowser控件绑定..

解决方案 »

  1.   

    你说的实在类向导里绑定吗? 目前我的问题可以转化为以下的形式:我建一个基于对话框的mfc dll,用类向导给对话框类加了一个成员变量m_ctrlWeb,它与CWebBrowser2绑定在一起,现在我再给对话框类增加一个成员函数void work(),然后在work中使用成员变量m_ctrlWeb,调用它的函数就会出现断言错误,是不是成员函数的使用只能在他的消息响应函数中?
      

  2.   

    检查一下初始化啥的,
    -------------------------------------------------
    是不是成员函数的使用只能在他的消息响应函数中?
    ---------------------------------------------------
    这肯定不是的,函数可以到处被调用,你没有debug下,看到底挂在哪里?
    把挂的代码贴出来看看
      

  3.   

    我建一个mfc 规则 dll,然后建一个对话框,里面有一个web browser 控件和一个按钮,代码如下:
    class CDllDialog : public CDialog
    {
    // Construction
    public:
    void work();
    CDllDialog(CWnd* pParent = NULL);   // standard constructor// Dialog Data
    //{{AFX_DATA(CDllDialog)
    enum { IDD = IDD_DLL_DIALOG };
    CEdit m_ctrlkEdit;
    CListCtrl m_list;
    CWebBrowser2 m_ctrlWeb;

    //}}AFX_DATA
    // Overrides
    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CDllDialog)
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    //}}AFX_VIRTUAL// Implementation
    protected: // Generated message map functions
    //{{AFX_MSG(CDllDialog)
    afx_msg void OnHelloButton();
    afx_msg void OnButton1();
    afx_msg void OnClickList1(NMHDR* pNMHDR, LRESULT* pResult);
    afx_msg void OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult);
    afx_msg void OnChangeEdit1();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
    };//{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_DLLDIALOG_H__CEA4C6AF_245D_48A6_B11A_A5521EAD7C4E__INCLUDED_)
    以上是对话框类的头文件,其中的函数work()是我增加的,就在work()中使用变量m_ctrlWeb,work()函数代码如下:
    void CDllDialog::work()
    {
       m_ctrlWeb.Navigate("http://127.0.0.1:8080/luther.html",NULL,NULL,NULL,NULL); 
        AfxMessageBox("hahaha");
       // COLORREF color = RGB(35, 255, 89);
        //m_ctrlkEdit.LineLength(30);
       //m_list.SetBkColor( color);
    }dll的导出函数如下:
    extern "C" __declspec(dllexport) void ShowDlg(void) 
    {
    CDllDialog dllDialog;
    dllDialog.DoModal();
    dllDialog.work();
    } 当我在测试程序中调用ShowDlg函数时,就会出现断言错误: