怪问题 同一工程内的类CString变量初值不一样 MFC对话框程序,在一个工程下,不同的对话框类在CString变量上有不同的值。有些在定义CString变量后MessageBox,输入结果为空,但是有些类输出又为1(临时变量,都没赋值),有点不明白,请高手指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CString需要初始化?即便这样也说不通,同样的定义也没初始化,在不同的对话框类里面又不一样,而且我刚试过,即使先初始化CString X="";然后再MessageBox(x),输出还是1 1。你看看向导是怎么做的:// Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; CButton m_Bt2; CMyButton m_Bt1; CScrollBar m_SbVert; CIPAddressCtrl m_IPadr; CString m_Stc1; //}}AFX_DATA///////////////////////////////////////////////CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){ //{{AFX_DATA_INIT(CAboutDlg) m_Stc1 = _T(""); //}}AFX_DATA_INIT}2.试试:AfxMessageBox() 成员变量没试过,我用的临时变量,AfxMessageBox也一样,还是各输各的值。 我再详细说一次,vs2008,MFC对话框程序,工程中有几个对话框类,现在发现在不同的对话框类中,申明一个CString临时变量,比如 CString temp;MessageBox(temp);然后用MessageBox输入值,一部份对话框类中输出为空,一部份却输出1,都是在OnInitDialog()中实验输出的,想知道是怎么回事?如果没表达清楚,请指教,谢谢。 贴代码意义不大 就这两行BOOL ProcessDlg::OnInitDialog() { CDialog::OnInitDialog(); CString temp; MessageBox(temp);//这里输出为1...........BOOL ServerDlg::OnInitDialog() { CDialog::OnInitDialog(); CString temp; MessageBox(temp);//这里输出却为空了 贴代码意义不大 就这两行BOOL ProcessDlg::OnInitDialog() { CDialog::OnInitDialog(); CString temp; MessageBox(temp);//……[/Quote]灵异事件~Rebuild all一下再看看 贴代码意义不大 就这两行BOOL ProcessDlg::OnInitDialog() { CDialog::OnInitDialog(); CString temp; MessageBox(temp);//……[/Quote]就是因为你的 CString temp没有做初始化,所以输出的内容是随机的 灵异事件~Rebuild ……[/Quote]Rebuild all N次了,如果原因是有人动过vs2008设置,会是哪里?因为女儿经常来玩..... 就是因为你的 CStrin……[/Quote]是固定的,并没有随机..... build成功了吗?你确定运行的是你编译的最新的。我怀疑你一致在运行 旧的、错的 问题解决,原因是女儿在创建第3个对话框的OnInitDialog()里面复制了一句(LPSTR)(LPCTSTR)...强转的代码,之前曾经复制到剪贴板里,然后又取消了这段代码,不知道女儿什么时候复制到OnInitDiglog()里面,导致后面的对话框CString空值都为1,唉!! vc2005,编写的MDI程序如何运行就直接最大化,我在向导中选择了默认,该如何改 串口编程中数据发送的问题 如何在程序运行后给编辑框取消密码属性 BHO 高手请进 关于创建子窗体问题 MS的bug???MS的bug??? 数字键的消息是什么? 怎么样用VC处理2值图象 请问如何把CPtrList输出至一个文件同时可以导入 谁能给我写一段完整的代码,我会感激不尽! 大家编程中都用stl吗 OpenCV 两次缩放与Canny边缘检测,为什么我的原图显示出来是灰色的?? 求助error LNK2001: unresolved external symbol
CString需要初始化?即便这样也说不通,同样的定义也没初始化,在不同的对话框类里面又不一样,而且我刚试过,即使先初始化CString X="";然后再MessageBox(x),输出还是1
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
CButton m_Bt2;
CMyButton m_Bt1;
CScrollBar m_SbVert;
CIPAddressCtrl m_IPadr;
CString m_Stc1;
//}}AFX_DATA
///////////////////////////////////////////////
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
m_Stc1 = _T(""); //}}AFX_DATA_INIT
}
2.试试:
AfxMessageBox()
成员变量没试过,我用的临时变量,AfxMessageBox也一样,还是各输各的值。
我再详细说一次,vs2008,MFC对话框程序,工程中有几个对话框类,现在发现在不同的对话框类中,申明一个CString临时变量,比如 CString temp;MessageBox(temp);然后用MessageBox输入值,一部份对话框类中输出为空,一部份却输出1,都是在OnInitDialog()中实验输出的,想知道是怎么回事?如果没表达清楚,请指教,谢谢。
贴代码意义不大 就这两行
BOOL ProcessDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CString temp;
MessageBox(temp);//这里输出为1
.......
....BOOL ServerDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CString temp;
MessageBox(temp);//这里输出却为空了
贴代码意义不大 就这两行
BOOL ProcessDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CString temp;
MessageBox(temp);//……
[/Quote]
灵异事件~Rebuild all一下再看看
贴代码意义不大 就这两行
BOOL ProcessDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CString temp;
MessageBox(temp);//……
[/Quote]
就是因为你的 CString temp没有做初始化,所以输出的内容是随机的
[/Quote]Rebuild all N次了,如果原因是有人动过vs2008设置,会是哪里?因为女儿经常来玩.....
[/Quote]是固定的,并没有随机.....