c++ - MFC WebBrowser.Navigate 错误 "A null reference pointer was passed to the stub."

标签 c++ mfc activex webbrowser-control

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

这些是我遵循的说明:

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

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

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

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

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

谢谢

最佳答案

尝试使用 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
);

关于c++ - MFC WebBrowser.Navigate 错误 "A null reference pointer was passed to the stub.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18796557/

相关文章:

c++ - 字符串到字节的转换

javascript - 使用 WScript.shell activeX 执行命令行

Excel VBA : Which OLE/OCX control to use to display a chart in a form?

c++ - 'const T*' 是 cv 未限定的类型吗?

c++ - 记住组合框的最后一个选择项

c++ - 由于 Tab 键顺序,鼠标光标总是得到错误的 hwnd - MFC 应用程序

delphi - 当我运行exe时,在delphi应用程序中安装(并使用)COM组件

c++ - protected ifstream 成员

c++ - 有没有其他方法可以编写代码而不是在 C++ 中使用 switch 语句

c++ - 访问控制对已删除的构造函数是否重要?