新建了一个对话框工程GlooxIM(对话框类为CGlooxIMDlg),在对话框上添加了几个Edit Control控件,并各自为它们添加了一个CString类型的Value变量,比如一个CString类型的str。并在CGlooxIMDlg.cpp声明一个CGlooxIMDlg Dlg变量。在工程中添加一个类abc(无基类),包含相应的头文件后,在abc.cpp的开头儿加入extern CGlooxIMDlg Dlg;abc类中有个函数void start();其中就需要调用CGlooxIMDlg类中的str变量,形式为Dlg.strvoid CGlooxIMDlg::OnBnClickedOk()
{
UpdateData(TRUE);
GetDlgItemText(IDC_EDIT_Str,str1)//str1是在CGlooxIMDlg.h中声明的一个public的全局CString变量
abc *p = new abc();
p->start();
delete p;
}
跟踪进入start()函数中,发现str和str1都为空!望大虾指教
{
UpdateData(TRUE);
GetDlgItemText(IDC_EDIT_Str,str1)//str1是在CGlooxIMDlg.h中声明的一个public的全局CString变量
abc *p = new abc();
p->start();
delete p;
}
跟踪进入start()函数中,发现str和str1都为空!望大虾指教
GetDlgItemText(IDC_EDIT_Str,str1)//str1是在CGlooxIMDlg.h中声明的一个public的全局CString变量执行后str和str1都可以得到Edit Control控件中的值,但是进入p->start();之后,它们就都为空了
p->start();
delete p; "你只是申请了一个内存空间,并没有赋值给指针p,也就是说没有实例化,所以里面什么都没有,自然都为空啦~