原因:默认优化会不显示一些临时中间量的值,把优化禁用即可。
现象:
在类中定义了一个即构体,在一个函数中对结构体的变量进行了赋值,在此函数中监控窗口内的值正确。当运行跳出这个函数后,结构体变量的值都是乱码。但把结构体内的值赋给其它变量又是正确的。
类定义
class A:
{
private:
bool ReadConfig(void);
private:
int m_iSoftType;
bool m_bArcUsed;
bool m_bMagUsed;
S_DETECTOR_PARAMS m_ArcParam;
}
实现:
bool A::ReadConfig(void)
{
GetPrivateProfileString(_T(“ArcDetector”), _T(“Name”), _T(“dd”), szTmp, 32, m_szIniFile);
m_ArcParam.sName = szTmp;
}
使用:
BOOL A::OnInitDialog()
{
CDialogEx::OnInitDialog();
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
ReadConfig();
if (m_bArcUsed)
{
m_pArc = new CArcDetector(RecvArcData, this, m_ArcParam.iDataPort);//此处监控窗口是乱码,但之后使用正常。
}
}
普通变量监控是正常的,但结构体就异常。