定义了一个控件变量m_strEdit,在运行了一个函数以后,我想给
m_strEdit赋值,结果报内存错误。经过调试,发现m_strEdit的地址
在运行了这个函数以后就不见了~~~
该如何是好

解决方案 »

  1.   

    *m_strEdit
    m_strEdit=new XXX;
      

  2.   

    在运行了一个函数以后
    你把这个函数代码贴出来呀,要不大家怎么知道你这个函数干了什么?
    控件变量m_strEdit是有效的绑定吗?
      

  3.   

    你是怎么赋值的?
    在那里赋值的?如果变量是Control类型,可以使用SetWindowText(“fgs”);
    也可以直接使用SetDlgItemText(ID,"ddf"); 通过ID来赋值
    如果变量定义的是Value的CString类型可以直接 m_strEdit = “sfds”; UpdateData(TRUE);另外一个,你赋值是在什么地方赋值的,如果是Control类型,要保证赋值的时候Edit窗口已经创建完成了。
    不能在构造函数和Dialog的OnCreat函数里面赋值,要到OnInitialDialog里面去赋值。
      

  4.   

    回3楼
    这个函数贴出来不太现实,因为挺麻烦的一个函数,还调用了其他函数。回4楼
    我是这样赋值:m_strEdit="1234";
    m_strEdit是CString类型,另外我是在Dialog的按钮的Command事件里负值的
      

  5.   

    我把m_strEdit加入Quick watch中查看,发现到函数体最后一步
      } 的时候m_strEdit的地址都没有变化,
    可是从}一出来,m_strEdit的指针就不见了~~~
    这是怎么回事~