cstringw-vs 2012 Cstring 出错的问题

问题描述

vs 2012 Cstring 出错的问题

大家好,请教下,我在编译如下代码时出现如下错误,寻求帮助,谢谢!

void CCteFormView::UpdateList(CCteSet &rs)
{

int i=0;
int nCount=0;

CString strID,strWorkHours,strTime;
// 清除列表框内容
m_ctrList.DeleteAllItems();
// 对数据表中所有记录进行处理
rs.Open();
while(!rs.IsEOF())
{
    CString strid;
    m_ctrList.InsertItem(i,"");
    strid.Format("%d",rs.m_ID);
    m_ctrList.SetItemText(i, 0, strid);

    m_ctrList.SetItemText(i, 1, rs.m_data.Format("%Y-%m-%d"));
    m_ctrList.SetItemText(i, 2, rs.m_name);
    m_ctrList.SetItemText(i, 3, rs.m_luhao);
    m_ctrList.SetItemText(i, 4, rs.m_liaose);

    出错提示如下:
    1>  CteFormView.cpp

1>d:myfilevisual studio 2012projectsxuglassformxuglassformcteformview.cpp(100): error C2664: “CListCtrl::SetItemText”: 不能将参数 3 从“CStringW”转换为“LPCTSTR”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
1>d:myfilevisual studio 2012projectsxuglassformxuglassformcteformview.cpp(101): error C2664: “CListCtrl::SetItemText”: 不能将参数 3 从“CStringW”转换为“LPCTSTR”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
1>d:myfilevisual studio 2012projectsxuglassformxuglassformcteformview.cpp(102): error C2664: “CListCtrl::SetItemText”: 不能将参数 3 从“CStringW”转换为“LPCTSTR”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符

在选用odbc 数据库acces连接时出现这样的情况:是CStringW,而不是c++6.0中的CString

CStringW m_name;
CStringW m_luhao;
CStringW m_liaose;
CStringW m_biaoa;
CStringW m_zhijing;
CStringW m_gaodu;
CStringW m_piancha;
CStringW m_shizhi;

解决方案

前面加一个(LPCTSTR)转换一下。类型转换

解决方案二:

估计你的项目是从VC6.0升级的,项目设置unicode,一劳永逸解决。

解决方案三:

调用 CString 的 GetBuffer() 方法
最后要配对调用 ReleaseBuffer() 方法

解决方案四:

如果使用unicode

其它方面又出现问题,蒙了,如
void CCteFormView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();

// TODO: 在此添加专用代码和/或调用基类
 //1-日期;2-品名;
m_ctrList.InsertColumn(0,"ID",LVCFMT_CENTER,30);
m_ctrList.InsertColumn(1,"日期",LVCFMT_CENTER,80);//??-??
m_ctrList.InsertColumn(2,"品名",LVCFMT_CENTER,60);//??-??

错误提示
1>d:myfilevisual studio 2012projectsxuglassformxuglassformcteformview.cpp(60): error C2664: “int CListCtrl::InsertColumn(int,LPCTSTR,int,int,int)”: 不能将参数 2 从“const char [3]”转换为“LPCTSTR”

1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换

解决方案五:

有vc6 的ANSI编码变为vs的unicode编码会带来多少改变呢?谢谢!

时间: 2024-07-28 15:17:43

cstringw-vs 2012 Cstring 出错的问题的相关文章

安装office 2012软件出错提示error 1706怎么办

  1.首先,咱们需要将win7系统中的隐藏文件显示出来,这个小编在之前的文章中就已经介绍过了,咱们大致说一下操作的步骤:咱们双击打开计算机,然后点击弹出窗口中的 "组织"-"文件夹选项"-"查看",然后将"隐藏受保护的系统操作文件"前的复选框去掉并将"显示文件.文件夹和驱动器"前的复选框选上---确定即可. 2.接下来,咱们根据路径C:User你的登录用户名AppDataLocal打开文件夹,然后右键点击

winxp系统中CAD2012配置的Heidi驱动程序未加载怎么办?

  AutoCAD2012打开出错:配置的Heidi驱动程序未加载,切换到默认软件驱动程序. Autodesk Inventor Fusion 2012打开出错:应用程序不可用,很抱歉,初始化图形子系统时出错.这可能是由于以下一种或多种原因所致:您的图形驱动程序没有针对"真彩色"进行配置;安装应用程序时出现问题;应用程序安装受损;或者图形硬件和驱动程序或应用程序配置出现其他问题. 1.对于XP系统,在桌面上点"右键"-属性-设置-高级-疑难解答-将"硬件加

localdb-Visualo stdio 2012 连接localDB 出错

问题描述 Visualo stdio 2012 连接localDB 出错 用Visual Studio 2012 连接localdb 报错,多步OLEDB操作产生错误.如果可能,请检查每个OLEDB状态值,没有工作被完成. CoInitialize(NULL); _ConnectionPtr m_pConnection; _CommandPtr m_pCommand; _RecordPtr m_pRecord; _ParameterPtr m_pParameter; HRESULT hr=m_p

Sql server 2012 安装老是出错

问题描述 安装中途老是弹出这个,刚开始我看到没有那个MicrosoftVisualC++2008Redistributablex869.0.307296161,我就去下载安装了一个,还是不行,然后再电脑搜索vr_red.msi,再把路径换了也是不行,希望大家有什么半大,另外我电脑还有一个2008版本的,不能同时存在两个版本吗,2012我安装了好几次,每一次重装我都卸载之前的,但是我感觉没有卸载干净,电脑里面还是有很多2012的相关的程序 解决方案 解决方案二:应该是没有卸载干净的缘故,卸载的时候

vs 2012 尝试运行项目时出错:无法启动程序 拒绝访问

问题描述 今天上午的时候调试程序还可以呢,刚才回到家就出了这个问题,之前也出现过,修复了下就好了,可修复一次花费时间太长啦,不知道有没有其它方法可以解决,期待大家的回答. 解决方案 解决方案二:检查下目录下有没有这个程序.重新生成一次.还有文件有没有权限.在Windows7下,文件有没有小挂锁的图标.解决方案三:把everyone权限给那个目录看看.如果能运行,就是权限问题.如果不能运行,有可能是有写的动作被拒绝.解决方案四:今天早上重新试了下又能打开了,不知道怎么搞的.解决方案五:你应该编译是

HDU4292 网络流 2012 ACM/ICPC Asia Regional Chengdu Online1005

                                   Food                                          Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)                                                             Total Submission(s): 555 Acc

Linux排错:/etc/hosts/中HOSTNAME错误导致SETUP出错

故障现象: Output generated from configuration assistant "Oracle Net Configuration Assistant": Command = /home/oracle/product/10.2.0/db_1/jdk/jre//bin/java -Duser.dir=/home/oracle/product/10.2.0/db_1/network/jlib -classpath /home/oracle/product/10.2.

设置保护WPS 2012表格公式

统计成绩当然是用WPS 2012表格来做的.为了统计每个学生的排名情况,我用WPS 2012表格设计了成绩统计表,如图1所示. 图1 学生的考号和姓名是统一录入完成的.而专业信息和班级信息则根据考号用公式进行提取.各老师只需要录入相应科目的分数(E2:I200单元格区域),至于总分和学生在本专业内的名次也利用公式直接得到. 实际应用中发现,由于各种原因,老师在录入分数时经常会改动原有的表格,有时甚至会改变公式,使得最终的统计结果混乱不堪,甚至出错.因此,需要将涉及公式的那些单元格保护起来,只允许

Eclipse 连接 SQL Server 2012数据库

  当你保证SQL Server 2012是采用SQL Server身份验证方式后,开始如下配置: 一.因为SQL Server 2012装好后,默认协议是没有开启的,所以要打开SQL Server配置管理器中开启: 1.安装好SQL Server 2012后,运行 开始 → 所有程序 → Microsoft SQL Server 2012 → 配置工具 → SQL Server配置管理器,如下图1所示: 图1 2.打开的窗口如下图所示.在左边栏找到 SQL Server网络配置选项,点开它的小