if (m_lpCmdLine[0] == _T('\0')) 这个语句中_T('\0')是判断m_lpCmdLine[0]里面的string 是不是\0 ?还是判断m_lpCmdLine[0]里面的是不是0?还有这个_T什么意思#define _T(x) __T(x)#define __T(x) x 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 \0是字符串结束标志._T是宏,它是为了保持ansi于unicdoe的和谐.当你定义了_UNICODE宏是,_T("xxx")表示unicode字符,反之是ansi. \0是字符串结束标志 看看数组的定义 数组结束时都会在末尾自动加上'\0'例如:a[5]={1,2,3}那么a[3]就等于'\0'_T是UNICODE字符型 一般现在用VC2008的话一般都是这个类型 长字节型 \是转义字符? ‘\0’= NULL? ansi 时是 char 0x00;Unicode 时是 short 0x0000 没有所谓的“m_lpCmdLine[0]里面的string”这种称谓,一个字符里不可能放下一个所谓的string至于_T,它是一个垫片宏,在MCBS编译模式下,它被翻译成楼主贴的这个解释,也就是说这个宏什么都不做。但是在UNICODE模式下,它被翻译成L x,这样x就被翻译成宽字符。使用_T的好处是,对于一个字符串,它在两种编译模式下都可以正常工作。有很多搞VC6的人到vc2005之后发现自己代码有一堆错误,很大原因就是vs2005缺省使用unicode编译,而这些人没有使用_T的原因 意思就是判断字符串是否为空("")因为为空的话第一个字符str[0]就等于0 m_lpCmdLine[0] 这个数组里面是什么元素,msdn怎么没讲那,是char数组还是CSting? 你看不到它的类型?在VC里选择这个变量,按F12就应该可以看到它定义了 LPTSTR m_lpCmdLine;怎么当数组用那! CString s = AfxGetApp()->m_lpCmdLine[0];那就只取了数组中第一个元素了?有这个语法吗? m_lpCmdLine[0]; m_lpCmdLine是指针那! 很显然,这是一个标准的定义新变量语法,只要CString接收单个字符为参数,就是合法的。如果你怀疑它不合法,应该去看看CString支持哪几种构造函数 位图打印 VC 6.0 刚学C++碰到的一个调用类的问题 VC++有Easysize宏的问题 关于用VC++6.0制作登陆界面 求教高手一个关于消息钩子的问题 ~~~~~~~~~~~~~~~关于移动窗体的简单问题,在线等~~~~~~~~~~~~~~~~ (类名*) 在什么条件下需要? 一个简单的问题:VC++如何上手? 谁能告诉我在VC里AFX这三个字代表的哪三个词? 多屏显示编程实现clone和extend 我在注册表启动项里注册程序启动,想给程序传个参数…… SOCKET问题
例如:a[5]={1,2,3}那么a[3]就等于'\0'
_T是UNICODE字符型 一般现在用VC2008的话一般都是这个类型 长字节型
使用_T的好处是,对于一个字符串,它在两种编译模式下都可以正常工作。有很多搞VC6的人到vc2005之后发现自己代码有一堆错误,很大原因就是vs2005缺省使用unicode编译,而这些人没有使用_T的原因
因为为空的话第一个字符str[0]就等于0
有这个语法吗? m_lpCmdLine[0]; m_lpCmdLine是指针那!