【问题标题】:IWebBrowser2 Controlling visibilityIWebBrowser2 控制可见性
【发布时间】:2014-06-04 16:25:46
【问题描述】:

我创建了隐藏的 IWebBrowser2 对象,它工作正常,但几秒钟后我想 将可见性更改为 true,我的应用程序崩溃。

pBrowser2->put_Visible(VARIANT_TRUE);

我做错了什么?

【问题讨论】:

  • 需要更多的代码。堆栈跟踪也可能很好。
  • "Crashes" 总是需要附带细节,例如崩溃位置的调用堆栈。
  • 来自 Dev C++ pastebin.com/E10bftuT 和代码 pastebin.com/zC3zvCmy 的所有回溯
  • -1 请不要对不在问题中的代码提问。我们需要问题中的信息,而不是 cmets 中提供的非现场链接。

标签: winapi iwebbrowser2


【解决方案1】:

你在释放pBrowser2后使用它。

你有:

pBrowser2->Release();  // pBrowser NOW INVALID!!!
srand( time( NULL ) );
//Sleep( ( std::rand() % 5000 ) + 5000 );
if(std::rand() % 100 <= chance ){
    pBrowser2->put_Visible(VARIANT_TRUE);  // instant crash here!
}

使用完后将调用移至 Release(),或使用 COM smart 指针,这样您就不必自己管理它。最简单的修复:

srand( time( NULL ) );
//Sleep( ( std::rand() % 5000 ) + 5000 );
if(std::rand() % 100 <= chance ){
    pBrowser2->put_Visible(VARIANT_TRUE);  // works
}
pBrowser2->Release();  // pBrowser NOW INVALID!!!

【讨论】:

    猜你喜欢
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 2011-04-19
    • 2011-12-20
    • 2014-01-31
    • 2012-06-12
    相关资源
    最近更新 更多