none
Debug Assertion Failure RRS feed

  • 问题

  • 大家好,我最近在学习VC6编程,我想在一个Combox控件加一些内容,这个控件位于一个PropertyPage上,而PropertyPage又位于PropertySheet上。

     

    int i;
    char buffer[10];
    CString s
    for (i=0;i<5;i++)
    {
      itoa(i+1,buffer,10);
      s=*buffer;
      sheet.m_RibTypeEdit.m_RibNum.AddString((LPCTSTR)s);

     

    }


    可是当我运行时出现Debug Assertion Failure 错误,请问这是什么原因呀?

    2008年5月25日 14:41

答案

全部回复

  • AddString需要在窗口创建之后调用。
    2008年5月25日 22:30
    版主
  • 谢谢版主的解答,真是这么个问题。可是后面问题又来了:

     

    我把初始化移到窗口OnSetActive()里面去了,然后我在OnCloseupComboRibnum(CSomeDoc* pDoc)传递了pDoc参数,想从中得到数组的值:

    int i=m_RibNum.GetCurSel();      

    m_a=pDoc->someList[\i].a;          //someList是一个类对象数组,a是其中的一个类变量,一到这里就出错。

    结果又出错 Sad 

     

    没有“\”

    2008年5月25日 23:49
  • 应该不是你贴的这点代码的问题,你看看前面你处理类数组的时候有什么问题吗?

    2008年5月26日 7:25
  • 在CView类中初始化数组,并将数组的值pDoc->SomeList[\i].a填写到PropertyPage的相关位置中都没有问题。难道是只能在CView类中访问pDoc->SomeList[\i].a吗?真是奇矣怪哉!

    我的感觉是传送的pDoc没有指向正确的CSomeDoc的实例,所以导致无法进一步操作。在CSomeView类中有GetDocument()方法,但在我当前窗口类中并没有,请问该如何正确获取这个Doc指针呀?

    2008年5月26日 12:19
  • 按照如下方法获得Doc指针:

    CSomeDoc* pDoc = GetDocument();

     

    2008年5月27日 1:32
    版主
  • GetDocument() 是CView类的一个方法,可是在我当前类中没有这个方法。所以应该寻找其它途径......

    2008年5月27日 9:38