IWebBrowser2控制可见性

时间:2014-06-04 16:25:47

标签: winapi iwebbrowser2

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

pBrowser2->put_Visible(VARIANT_TRUE);

我做错了什么?

1 个答案:

答案 0 :(得分:3)

发布后你正在使用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!!!