停止C++循环代码方法的哪几种呢

时间:2022-10-07 00:38:44
它这个东东,击发它一次,它就运行2次,第二次击发它,它就运行6次,接着越来越多。不管用什么方法,只让它点一次运行一次。 



    release();
    iunk->QueryInterface(IID_IWebBrowser2, (void**)&webBrowser);
    IConnectionPointContainer *cpc=0; iunk->QueryInterface(IID_IConnectionPointContainer, (void**)&cpc);
    IConnectionPoint* cp=0; if (cpc) cpc->FindConnectionPoint(DIID_DWebBrowserEvents2, &cp);
    DWORD cookie; HRESULT hr; if (cp) hr=cp->Advise(static_cast<IDispatch*>(this), &cookie);
    if (!webBrowser || !cpc || !cp || hr!=S_OK) {if (cp) cp->Release(); if (cpc) cpc->Release(); release(); return E_FAIL;}
  //if (!webBrowser || !cpc || !cp) {if (cp) cp->Release(); if (cpc) cpc->Release(); release(); return E_FAIL;}
return S_OK;


这代码中DWORD cookie; HRESULT hr; if (cp) hr=cp->Advise(static_cast<IDispatch*>(this), &cookie); 这个去掉的话,就不运行了。但是有的话,就跟刚才说那样了。

17 个解决方案

#1


看你的代码太痛苦了,
我都想自杀了。

#2


我已经自杀了
现在游离于三界之间

#3


设置一个bool变量
点击赋值为true
if(true)运行
运行1次赋值为false

#4


呵呵,kill

#5


引用 3 楼 zhengjiankang 的回复:
设置一个bool变量
点击赋值为true
if(true)运行
运行1次赋值为false


这个应该不行吧。

FALSE怎么退出

#6


你1个if里面就把某事情做6次吗
我没看代码
看不明白你说说你摇干嘛吧

#7


确实是很痛苦的代码,这种逻辑判断会出很多问题的

#8


if用的太多

#9


它这个是递增的,第一次点,就运行两次,第二次六次,三次不知道是9次还是十几次。

#10


貌似LZ的代码里有static的变量或者函数,应该是这个导致的循环次数递增,可以尝试着在static上做些修改

#11


貌似LZ的代码里有static的变量或者函数,应该是这个导致的循环次数递增,可以尝试着在static上做些修改

#12


你用
if(a)
{
do ***;
}
if(b)
{
do ***;
}
if(c)
{
do ***;
}
会运行3次

如果换成
if else也就是
if(a)
{
do ***;
}
else if(b)
{
do ***;
}
else if(c)
{
do ***;
}
就只运行一次了
或者按我说的用bool Bool = true
if(a && Bool )
{
do ***;
Bool = false;
}
if(b && Bool)
{
do ***;
Bool = false
}
if(c && Bool)
{
do ***;
Bool = false
}
也只运行1次

#13


不敢去看代码... 好晕

#14


呵呵。。。

#15


楼主视力真好。

#16


严重同意楼上各位的看法。
建议楼主 规范一下代码的写法。
多用几个回车和 tab 还有 {} 
这样看的话大家都会自杀的

#17


我手真贱,点进来看到如此劣质的代码。

#1


看你的代码太痛苦了,
我都想自杀了。

#2


我已经自杀了
现在游离于三界之间

#3


设置一个bool变量
点击赋值为true
if(true)运行
运行1次赋值为false

#4


呵呵,kill

#5


引用 3 楼 zhengjiankang 的回复:
设置一个bool变量
点击赋值为true
if(true)运行
运行1次赋值为false


这个应该不行吧。

FALSE怎么退出

#6


你1个if里面就把某事情做6次吗
我没看代码
看不明白你说说你摇干嘛吧

#7


确实是很痛苦的代码,这种逻辑判断会出很多问题的

#8


if用的太多

#9


它这个是递增的,第一次点,就运行两次,第二次六次,三次不知道是9次还是十几次。

#10


貌似LZ的代码里有static的变量或者函数,应该是这个导致的循环次数递增,可以尝试着在static上做些修改

#11


貌似LZ的代码里有static的变量或者函数,应该是这个导致的循环次数递增,可以尝试着在static上做些修改

#12


你用
if(a)
{
do ***;
}
if(b)
{
do ***;
}
if(c)
{
do ***;
}
会运行3次

如果换成
if else也就是
if(a)
{
do ***;
}
else if(b)
{
do ***;
}
else if(c)
{
do ***;
}
就只运行一次了
或者按我说的用bool Bool = true
if(a && Bool )
{
do ***;
Bool = false;
}
if(b && Bool)
{
do ***;
Bool = false
}
if(c && Bool)
{
do ***;
Bool = false
}
也只运行1次

#13


不敢去看代码... 好晕

#14


呵呵。。。

#15


楼主视力真好。

#16


严重同意楼上各位的看法。
建议楼主 规范一下代码的写法。
多用几个回车和 tab 还有 {} 
这样看的话大家都会自杀的

#17


我手真贱,点进来看到如此劣质的代码。