在程序中作如下操作:CString ss="dd";
调试时,刚运行完本句,用QuickWatch察看ss的值,等到结果:
CXX0017: Error: symbol "ss" not found
什么原因,太奇怪了

解决方案 »

  1.   

    不要用QUICKWATCH看,QUICKWATCH有变量范围问题
      

  2.   

    我也曾遇到这种奇怪问题,记不清楚当时的运行环境了。
    这是这样解决的
    CString ss;
    ss = "dd";
    再编译就没问题了。我也没深究。楼主的精祌我要好好学习。
      

  3.   

    有这样定义的么 CString是个类
      

  4.   

    CString是一个类,其内部运作原理其实是用字符数组存储的,它帮你管理了这些内存。一般以一个算法来计算需要一般情况下所需字符串的长度(字符串类有很多,具体到CString的话我没有深究,但原理是一样的),然后new(Alloc)出来,当类析构时 Delete(Free)。也就是说同样存在new不成功的情况,在程序中用CString ss = "dd";是可以的,相当于调用CString::CString(LPCTSTR lpsz),楼主存在的问题可能在一个可能出现分配内存错误的环境中运行,所以楼主要解决的并不是字符串的符值问题,而是代码其它地方的错误,要不然就是系统本身有问题。
      

  5.   

    老兄,你们说的都很对,我本来的问题是这样的。定义一个类:
    class CFormHeadStru   
    {
    public:
    CPtrArray m_subItem;
    CString m_sItemName;
    CString m_cItemCode;
    int m_nRowSpan;
    int m_nColSpan; CFormHeadStru(CString sName,CString sCode,int nColSpan,int nRowSpan)
    {
    m_sItemName = sName;
    m_cItemCode = sCode;
    m_nColSpan = nColSpan;
    m_nRowSpan = nRowSpan;
    };
    virtual ~CFormHeadStru();
    };
    然后再程序其它地方定义其实力:
    CFormHeadStru _headStru(_T("年"),"Date",2,1);
    程序执行时发现构造含数中CFormHeadStru成员的所有CString类型成员的值都没有正确赋值,
    然后又通过上面在其他地方定义字符串试验,结构发现字符串都不能正确使用,大家不要跑题
      

  6.   

    重新build全部工程试试(Rebuild All)
      

  7.   

    我用单步调试了一下,发现赋值没有错误
    如下:
             CFormHeadStru _headStru(_T("年"),"Date",2,1);
             CString str1=_headStru.m_sItemName;
    CString str2=_headStru.m_cItemCode;
    int in1=_headStru.m_nRowSpan;
    int in2=_headStru.m_nColSpan;单步调试显示栏中 str1,str2,值均是正确的
    字符串本身并没有错误
      

  8.   

    楼主,你的代码中
    CFormHeadStru(CString sName,CString sCode,int nColSpan,int nRowSpan)
    {
    m_sItemName = sName;
    m_cItemCode = sCode;
    m_nColSpan = nColSpan;
    m_nRowSpan = nRowSpan;
    };
    会被编译器声明成Online,你试一下把它改成
    CFormHeadStru(CString sName,CString sCode,int nColSpan,int nRowSpan);
    CPP文件中
    CFormHeadStru::CFormHeadStru(CString sName,CString sCode,int nColSpan,int nRowSpan)
    {
    m_sItemName = sName;
    m_cItemCode = sCode;
    m_nColSpan = nColSpan;
    m_nRowSpan = nRowSpan;
    };
    我想问题应该就解决