我对一个编辑框映射了一个变量后,我在程序中,用一个字符变量再去接收,结果输出结果显示00452A9C这样16进制的数了,Debug调试中映射变量显示为{""},开始还能按我输入发送字符的呀!所以菜鸟在这儿请教各位大虾们了!!

解决方案 »

  1.   

    Debug里面执行下一步,它指向
    _AFX_INLINE CString::operator LPCTSTR() const
    { return m_pchData; }
    这儿去了,这是什么原因呀?
      

  2.   

    我UpdateData了呀,在这个类下函数的开头就是UpdateData(TRUE),过程结束后UpdateData(FALSE)!这样不对吗??哪个变量我就是定义了一个CString型变量!!
      

  3.   

    我举个例子我程序代码大概如下这样子:
    void CMyDlg::OnInputnumber()   
    {
             UpdateData(TRUE); std::ofstream file_s1;
    file_s1.open("blade.pcl",ios::trunc);
        file_s1<<m_SaveName<<"\n"; 
            UpdateData(FALSE);
    }
    代码大概就这样子的了,m_SaveName为我定义的编辑框的映射变量,为CString类型!
      

  4.   

    程序太大了,本来以前都好用的,今天我添加了一个计算程序的类进去,在计算的类里面
    #include <vector>
    #include <fstream>
    #include <iostream>
    #include <string>
    #include <math.h>
    using namespace std;
    这些头文件和定义,今晚再调试结果字符变量就失效了,但是别的编辑框float和double实数类型的都能映射过去!我不知道怎么回事呀!!
      

  5.   

    _AFX_INLINE CString::operator LPCTSTR() const是重载了LPCTSTR操作符代码这样改:
    void CMyDlg::OnInputnumber()   
    {
             UpdateData(TRUE); std::ofstream file_s1;
    file_s1.open("blade.pcl",ios::trunc);
    std::string strTmp = (LPCTSTR)m_SaveNamne;
    file_s1<<strTmp<<"\n"; 
            UpdateData(FALSE);
    }
      

  6.   

    orbit(走了走了) ,非常感谢,照你说的我已经搞定了!!我已经给分了!
      

  7.   

    应该如楼上所说!你去看看CString中操作符<<,>>的声明.
    file_s1<<m_SaveName<<"\n"; // 这个显然不对.