大家帮我看看用VC++编程序出现的问题:似乎是字符转换方面的

来源:百度知道 编辑:UC知道 时间:2024/05/12 15:46:44
D:\我的文档\VC\lhwy\lhwyView.cpp(174) : error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class CString' (or there is no acceptable conversion)
D:\我的文档\VC\lhwy\lhwyView.cpp(175) : warning C4244: 'argument' : conversion from 'long' to 'char', possible loss of data
上面的是编译后的错误提示。

m_pSet->m_column2=dlg.m_strName;
m_pSet->m_column3=dlg.m_Maths;
上面的分别是两个错误的所在行。

另外,这个编的是一个ODBC的数据库应用程序,在页面上用一个列表框控件显示所添加的数据,其中m_strName是CString类型的,m_Maths是long型的,请大家帮帮忙看看!先谢过了!
两位的答案都是对的,经理的方法比较强硬,我试过,行的通。由于我对VC以及C++还都不是太熟悉,这种过于暴力的方法似乎不利于正处于成长期的我,呵呵,不见见怪了。少侠的话才点醒了我,我去看了一下定义,就这么解决了。谢谢拉

晕,你得先把 CString 转化成 m_column2 的对应类型
对于 m_column3 也是同样的道理

对于语句m_pSet->m_column2=dlg.m_strName而言,错误: binary '=' : no operator defined which takes a right-hand operand of type 'class CString' (or there is no acceptable conversion) 说明把CString类型的数据直接放在等号右边使得编译器无法进行下去。如果希望把CString类型的数据赋给某个变量,通常使用strcpy函数。

对于语句m_pSet->m_column3=dlg.m_Maths而言,警告:
conversion from 'long' to 'char', possible loss of data
说明将一个long型数据赋给char型变量很可能会造成数据丢失,因为char型变量所能存放的最大值只有128。如果确定该long型数据不会大于此值,建议使用强制类型转换
m_pSet->m_column3=(char)dlg.m_Maths便可消除警告。