none
请问这个问题如何解决阿?为什么C#里可以,到了C++里就不行了? RRS feed

  • 问题

  • ICustomDoc cDoc = (ICustomDoc)this.WebBrowser.Document;
    在C#里编译和运行都是没有任何问题
    但转换到C++里后如下
    ICustomDoc^ cDoc =(ICustomDoc^)webBrowser1->Document->DomDocument;

    编译没有错误提示,但运行后出现如下提示
    未将对象引用设置到对象的实例。

    请问应该如何解决阿?小弟我头都要弄大了
    • 已移动 Sheng Jiang 蒋晟 2009年12月30日 17:43 IE开发问题 (发件人:Visual C++)
    2009年12月30日 15:19

答案

  • 你调用的时间不对。webBrowser1->Document不一定随时有值,即使有值也不一定是顶层HTML文档(可以是框架网页、文件夹、Word、PDF等文档)。先确定你的文档非空,而且支持IHTMLDocument2再说。
    ICustomDoc不是为WebBrowser控件而设计的,使用的时候会有内存泄漏。Windows Forms的IDocHostUIHandler实现有bug,不能自行扩展。要扩展IDocHostUIHandler的话,可以自己把ActiveX重新封装一遍,或者用第三方的封装类。


    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年12月30日 17:43