CString sIniPath = this->GetCurPathFromExe();
CString sTmp;//临时保存路径 //读取存储路径
m_cConLog.Init(_T(""),sIniPath + _T("\\config.ini"));//两次设置的目的是为了更新路径
m_sSelectPath = m_cConLog.ReadConfig(_T("FilePath"),_T("LOGPATH")); if (m_sSelectPath == _T(""))
{
m_sSelectPath = this->GetCurPathFromExe();
} //更新路径文本
m_sPthName = m_sSelectPath + CString("\\Log.txt");
UpdateData(FALSE);
m_cConLog.Init(m_sPthName,sIniPath + _T("\\config.ini")); //写入配置文件
m_cConLog.WriteConfig(_T("FilePath"),_T("LOGPATH"),m_sSelectPath);

解决方案 »

  1.   

    上面的m_sPthName 在第一次相加时是正确的,如果第二次从配置文件中读取出字符串来,再加时,就只会有后面的那个LOG。TXT,前面的路径就没有了,可是跟踪时,sSelectPath 的值是正确的。sIniPath 无论怎么都是正确的。
      

  2.   

    m_sSelectPath  为空了吧? 
      

  3.   

    我找到原因了,不好意思,我在读配置文件时,m_sReadPath.GetBuffer(MAX_PATH),忘了没有m_sReadPath.ReleaseBuffer(),造成字段长的不稳定。太马虎了。不好意思。