对不起,我没有说清楚,
应该是:为什么strFileName不是只取前面的九个字符,而是取了这么多字符出来?
这一串("Flash.exe@@@@@...")本来是在strData中的。

解决方案 »

  1.   

    1._ttoi或_ttol
    2.没遇到过,你的strFileName是不是CSting,建议看看初始状态有没问题
      

  2.   

    strFileName 是得到了 Flash.exe
    只是 你的 strFileName 没有初始化,用下面方法试试setmem(strFileName,0,10);
    strFileName=strData.Left(nCount);
      

  3.   

    如果strFileName CSstring 对象你在将CHAR数组转换成CSTRING时把一些乱码也传了过来,是因为CHAR数组后没有“\0”
    可以用CString 函数:
          strFileName.TrimRight();
          就可以了
    如果是char 数组你可以
         在定义数组后
         执行memset(strFileName,'\0',9)函数;
       也可以先转换成CString 
            CString m_str=(CString)strFileName;
            m_str.TrimRight();
      

  4.   

    1.         int i = atoi(strHillNum.GetBuffer(0));
    2.         不应该是这样。
      

  5.   

    1.  int i = atoi(strHillNum.GetBuffer(strHillNum.GetLength()));
    2.  应该是赋值的问题
      

  6.   

    CString strHillNum;
    strHillNum="003";
    int i;
    i = atoi(strHillNum); CString strData;
    CString strFileName;
    int nCount = 9;
    strData.Format("Flash.exe");
    strFileName=strData.Left(nCount);// 已知nCount=9
    一切正常呀!要不,你再试试?
      

  7.   

    谢谢各位!
    如果使用了
    GetBuffer();
    而没有使用
    ReleaseBuffer();
    会不会出现上面我说的这个问题?
      

  8.   

    使用了GetBuffer()而没有使用ReleaseBuffer()?
    你怎么会这么设想?