1

在一个 c++ MFC 应用程序中,我在表单中嵌入了一个 WebBrowser。它通过“插入 ActiveX 控件...”对话框嵌入到表单中,然后我创建了 IDispatch 包装类并添加了一个变量。

这些是我遵循的说明:

http://msdn.microsoft.com/en-us/library/aa752046(v=vs.85).aspx

在创建和销毁对话框几次后,我收到错误“空引用指针已传递给存根”。当我调用以下内容时:

m_browser->Navigate( _T("about:blank"), NULL, NULL, NULL, NULL );

不幸的是,我无法重新创建它,我的 QA 部门也不能(只是客户端应该是 Win 7 x64,从 win32 应用程序调用)。

这种方法有什么问题还是我完全错过了什么?

谢谢

4

1 回答 1

0

尝试使用BSTR字符串而不是文字_T("about:blank")并传递一个空变量而不是 NULL:

COleVariant vUrl(_T("about:blank"));
COleVariant vEmpty;
m_browser->Navigate(V_BSTR(&vUrl), &vEmpty, &vEmpty, &vEmpty, &vEmpty);

这与IWebBrowser2::Navigate方法的签名相匹配:

HRESULT Navigate(
    BSTR url,
    VARIANT *Flags,
    VARIANT *TargetFrameName,
    VARIANT *PostData,
    VARIANT *Headers
);
于 2013-09-14T13:32:55.157 回答