VC++6.0里点击按钮无响应,最后提示应用程序无响应?

时间:2022-12-22 07:14:52
VC++6.0里点击按钮无响应,最后提示应用程序无响应?
译码按钮无响应,该按钮代码如下:
void CHuffman33Dlg::OnButtonDecode() 
{
// TODO: Add your control notification handler code here
CString codeStr,str,strTemp,strTemp2;
CString decodeStr="";
GetDlgItemText(IDC_EDIT_INPUT,codeStr);

/*if (codeStr=="")
{
GetDlgItemText(IDC_EDIT_DECODEREC,codeStr);
}*/
str=codeStr;
int n=num;//叶子节点个数
int i=0,j=0;
int minLC=m_zifu.GetItemText(0,3).GetLength(),maxLC=0;//最短和最长哈夫曼编码
int len=0;
for (i=0;i<n;i++)
{
len=m_zifu.GetItemText(i,3).GetLength();
minLC=minLC<=len?minLC:len;
maxLC=maxLC>=len?maxLC:len;
}
while(str!="")
{
for (i=minLC;i<=maxLC;i++)
{
strTemp=str.Left(i);
j=0;
strTemp2=m_zifu.GetItemText(j,3);
while(strTemp!=strTemp2&&j<n)
{
j++;
strTemp2=m_zifu.GetItemText(j,3);
}
if (strTemp==m_zifu.GetItemText(j,3)&&j<n)
{
str=str.Right(str.GetLength()-i);
decodeStr+=m_zifu.GetItemText(j,0);
}
}
}
SetDlgItemText(IDC_EDIT_DECODE,decodeStr);
}
不知该如何解决,求大神们帮忙,谢谢!!

6 个解决方案

#1


一定是while死循环了,跟踪调试一下

#2


引用 1 楼 dingxz105090 的回复:
一定是while死循环了,跟踪调试一下


或者是 for 死循环了

#3


我估计str一直不为空,所以退不出来。

#4


在这个函数的开头就设置个断点,然后进去了按F10单步跟,然后看看是哪步出问题了

#5


引用 1 楼 dingxz105090 的回复:
一定是while死循环了,跟踪调试一下

的确是while那里死循环了,但是没改好

#6


一眼望去,str没机会为空

#1


一定是while死循环了,跟踪调试一下

#2


引用 1 楼 dingxz105090 的回复:
一定是while死循环了,跟踪调试一下


或者是 for 死循环了

#3


我估计str一直不为空,所以退不出来。

#4


在这个函数的开头就设置个断点,然后进去了按F10单步跟,然后看看是哪步出问题了

#5


引用 1 楼 dingxz105090 的回复:
一定是while死循环了,跟踪调试一下

的确是while那里死循环了,但是没改好

#6


一眼望去,str没机会为空