类之间 传值有关问题

类之间 传值问题
对话框   A和B     想A中的值“HELLO”传给B

在B中定义了成员函数
B::set(CString   str)
{
m_txt=str;//m_txt是EDIT控件
UpdateData(true);
}


在主对话框A用以下代码调用
{
CString   str= "hello ";
B   dlg;
dlg.set(str);
dlg.DoModal();
}

结果出现错误   为什么呢?
   


------解决方案--------------------
不能在domodal之前调用set的,因为set用了updatedata函数,而那时控件什么的都还没建好,调用就会出错了.set给一个成员变量赋值吧,对话框显示时再用那个成员变量的值
------解决方案--------------------
B::set(CString str)
{
m_strTxt=str;//m_strTxt是EDIT控件邦定的CString变量

}


BOOL B::OnInitDialog()
{
...
UpdateData(FALSE);
...
}