在下利用DoModal来显示对话框,但是出错,单步执行,跟踪发现在GetBufferSetLength地方出错,提示在 ASSERT(nNewLength >= 0);
有问题,请问是什么原因产生的!!!万分感谢

解决方案 »

  1.   

    GetBufferSetLength地方?在那个涵数里出现?
    DoModal之后执行?对话框弹出来没有?多数都是些次序上的问题..
      

  2.   

    我也不知道怎么回事,就是对话框没有弹出来,我单步跟踪,一直到CDialog类的Domodal中在创建对话框时出错,出错的地方在GetBufferSetLength,
    LPTSTR CString::GetBufferSetLength(int nNewLength)
    {
    ASSERT(nNewLength >= 0); GetBuffer(nNewLength);
    GetData()->nDataLength = nNewLength;
    m_pchData[nNewLength] = '\0';
    return m_pchData;
    }
    就在这个地方的ASSERT中,从变量中可以看出nNewLength变量<0,我也不知道为什么???请高手指点!!!!  万分感谢!!!!
      

  3.   

    在我编写的代码中没有出错,是在MFC底层的地方出错,我就是不明白是什么原因引起底层代码中GetBufferSetLength函数出错,敬请高手指点!!!
      

  4.   

    Mackz(在相互)能说的详细些吗,如何利用检查堆栈来检查自己的代码呢?
      

  5.   

    先把你利用DoModal来显示对话框的那段代码粘出来不就好解决了吗