我创建隐藏的IWebBrowser2对象,它工作正常,但几秒后我想 将可见性更改为true并且我的应用程序崩溃。
pBrowser2->put_Visible(VARIANT_TRUE);
我做错了什么?
答案 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!!!