注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

八哥吧室

那山沟里真的有山花吗

 
 
 

日志

 
 
 
 

VC图像处理(二):VC中的字符串  

2009-12-05 11:24:46|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

字符串操作由于涉及到指针所以很容易出错,VC进行了很多的字符串的封装,这也导致了对一些字符串类的混淆。在网上看到一篇pdf文章,对C++中的字符串及标准进行了总结,可以下载自:

http://download.csdn.net/source/373184

对此,作了些笔记:

-1.Unicode编码标准一个字符都是16位,其代表类型是wchar_t,而TCHAR类型在采用Unicode方式编译时会使用wchar_t,而普通编译则是char。
0.在Win16下有长指针(LP)与短指针(P)的区别,在Win32下没有区别,都是32位的。
1.strlen如果对LPCTSTR或者LPTSTR等UNICODE的字符串使用的话会得到原来长度的两倍。而应该用wcslen()或者lstrlen()。lstrlen(LPCTSTR lpString),wcslen(const wchar_t *string),strlen(const char *string)。
2.VC的字符串可以直接用CString str=“你好”或LPCTSTR  str=“你好”。但是Embeded VC则必须用CString str=_T(“你好”)或者LPCTSTR str=“你好”。_T()宏中,括号中只能填写常量,不能填定变量。LPCTSTR在EVC里就是表示UNICODE字符串。
3.CString是一个动态TCHAR数组,BSTR是专有格式字符串需要用系统提供的函数来操纵。LPCTSTR是一个常量的TCHAR指针。
4.LPSTR是一个指向以''结尾的ANSI字符数组指针,与char*可以互换使用。LPCSTR是LPSTR的const常量。LPWSTR与LPCWSTR的字符数据是16位的wchar_t。为了实现两种编码的通用,提出了TCHAR定义。如果定义了_UNICODE使用Unicode编译则声明为typedef wchar_t TCHAR,而如果没有定义_UNICODE使用变通编译则声明为typedef char TCHAR。LPTSTR和LPCTSTR中的T字母表示每个字符都是TCHAR。CString中的字符是TCHAR型的。

  评论这张
 
阅读(424)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017