stream2000
Programmer
I have a problem with this part of my program. In debug mode it's working but in release mode The CString value(m_sTime) is going nutts. I'm very confused.
What I'm trying to do is some kind of a time bomb.I have the time set in seconds(member variable long m_iTime). The timer sends a message at one second and I increase it in (long m_iCount).And I'm going to write the time remaining in a CStatic Object (CString m_sTime).(HH:MM:SS)
There can't be given more then 99 hours or 99 minutes or 99 seconds.
ex : (10:34:02)(10:34:01)(10:34:00)(10:33:59).....
void CProgramDlg::OnTimer(UINT nIDEvent)
{
m_iCount++;
long iTime01=0;
long iTime02=0;
long iTime03=0;
char time1[2]="";
char time2[2]="";
char time3[2]="";
iTime01=(m_iTime-m_iCount)/3600;
iTime02=((m_iTime-m_iCount)%3600)/60;
iTime03=((m_iTime-m_iCount)%3600)%60;
if(iTime01!=100)
{
ltoa(iTime01 , time1 , 10);
}
ltoa(iTime02 , time2 , 10);
ltoa(iTime03 , time3 , 10);
if(iTime01/10==0)
{
m_sTime+="0";
m_sTime+=time1;
}
else
{
m_sTime+=time1;
}
m_sTime+=":";
if(iTime02/10==0)
{
m_sTime+="0";
m_sTime+=time2;
}
else
{
m_sTime+=time2;
}
m_sTime+=":";
if(iTime03/10==0)
{
m_sTime+="0";
m_sTime+=time3;
}
else
{
m_sTime+=time3;
}
UpdateData(FALSE);
CTrayDialog::OnTimer(nIDEvent);
}
What I'm trying to do is some kind of a time bomb.I have the time set in seconds(member variable long m_iTime). The timer sends a message at one second and I increase it in (long m_iCount).And I'm going to write the time remaining in a CStatic Object (CString m_sTime).(HH:MM:SS)
There can't be given more then 99 hours or 99 minutes or 99 seconds.
ex : (10:34:02)(10:34:01)(10:34:00)(10:33:59).....
void CProgramDlg::OnTimer(UINT nIDEvent)
{
m_iCount++;
long iTime01=0;
long iTime02=0;
long iTime03=0;
char time1[2]="";
char time2[2]="";
char time3[2]="";
iTime01=(m_iTime-m_iCount)/3600;
iTime02=((m_iTime-m_iCount)%3600)/60;
iTime03=((m_iTime-m_iCount)%3600)%60;
if(iTime01!=100)
{
ltoa(iTime01 , time1 , 10);
}
ltoa(iTime02 , time2 , 10);
ltoa(iTime03 , time3 , 10);
if(iTime01/10==0)
{
m_sTime+="0";
m_sTime+=time1;
}
else
{
m_sTime+=time1;
}
m_sTime+=":";
if(iTime02/10==0)
{
m_sTime+="0";
m_sTime+=time2;
}
else
{
m_sTime+=time2;
}
m_sTime+=":";
if(iTime03/10==0)
{
m_sTime+="0";
m_sTime+=time3;
}
else
{
m_sTime+=time3;
}
UpdateData(FALSE);
CTrayDialog::OnTimer(nIDEvent);
}