打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CString参数用于const void*的理解

CString参数用于const void*的理解 收藏
比如一个函数接受一个字符串参数的输入,里面对该字符串又没有任何的修改,那么该参数就应该定义成 const char*, 但是很多初学者弄不清const地用法,或者是懒, 总之就是随意写成了 char* 。 这样子传入CString时就需要强制的转换一下。

  这种做法是不安全的,也是不被建议的用法,你必须完全明白、确认该字符串没有被修改。

  CString 转换到 LPTSTR (char*), 预定的做法是调用CString的GetBuffer函数,使用完毕之后一般都要再调用ReleaseBuffer函数来确认修改 (某些情况下也有不调用ReleaseBuffer的,同样你需要非常明确为什么这么做时才能这样子处理,一般应用环境可以不考虑这种情况)。

  同时需要注意的是, 在GetBuffer 和 ReleaseBuffer之间,CString分配了内存交由你来处理,因此不能再调用其他的CString函数。

  CString 转LPCTSTR:

  CString cStr;

  const char *lpctStr=(LPCTSTR)cStr;

  LPCTSTR转CString:

  LPCTSTR lpctStr;

  CString cStr=lpctStr;

   const void* lpBuf //任意类型指针

   CString  可以当string用,当用于指针参数时,可自动转化为指针

   不过最好加强制类型转化,(不加强制类型转化,有的编译器可能报错)


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gtrl2599/archive/2009/07/14/4346728.aspx

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
LPCTSTR的用法
VC:CString用法整理(转载)
CString 成员函数用法大全 - C++ 代码 - 博客园
(转)CString详解以及CString转换成char* LPCTSTR LPSTR T...
CString 型和 char* 类型的相互转化
CString转char
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服