神农藏百草 2018-08-01 08:46 采纳率: 0%
浏览 2340
已采纳

不能将参数 1 从“CString”转换为“const char *”

不知道这个应该怎么转换,求各位老哥帮帮忙图片说明

  • 写回答

6条回答 默认 最新

  • 李迟 博客专家认证 2018-08-01 09:05
    关注

    格式乱了,重写一下 以下例子是将CString转成char*,再拷贝。

    CString aaa;
    aaa = "hello";
    char buffer[32] = {0};
    strcpy(buffer, aaa.GetBuffer());
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 海棠花开555 2018-08-01 08:54
    关注

    strlen( )函数的参数是一个字符数组的指针,你的MsgStr是不是一个String类型的? 若果string,你可以用 MsgStr.length();

    评论
  • 李迟 博客专家认证 2018-08-01 08:54
    关注

    CString是一个类,用CString的GetBuffer成员函数转换成char*。

    评论
  • 神农藏百草 2018-08-01 08:55
    关注

    除了改成多字节字符集以外其他的办法

    评论
  • doing-done 2018-08-01 09:10
    关注

    转换的话 strlen((const char*)MsgStr.GetBuffer(0));
    但是CString是宽字节,这样求出来的长度应该会有问题。
    因为宽字节英文字母在内存中占用情况是 ‘M’‘\0’这样占有两个字节,转换为const char* 求长度时到第一个'\0'就结束了。

    所以简单点方法,CString求长度可以使用CSting.GetLength().

    评论
  • _肆 2018-08-01 09:40
    关注

    strlen针对的是char数组或者char指针,cstring是vs自己封装的一个类,同时封装了自己的函数,好比format一个等级
    MsgStr.GetLength();的返回值就是你要算的字符串长度

    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥20 powerbulider 导入excel文件,显示不完整
  • ¥20 #关于multisim绘图遇到的问题
  • ¥15 用keil调试程序保证结果进行led相关闪烁
  • ¥15 paddle训练自己的数据loss降不下去
  • ¥20 用matlab的pdetool解决以下三个问题
  • ¥15 单个福来轮的平衡与侧向滑动是如何做到的?
  • ¥15 嵌入式Linux固件,能直接告诉我crc32校验的区域在哪不,内核的校验我已经找到了,uboot没有
  • ¥20 h3c静态路要求有详细过程
  • ¥15 调制识别中输入为时频图,星座图,眼图等
  • ¥15 数据结构C++的循环、随机数问题