鱼C论坛

 找回密码
 立即注册
查看: 2051|回复: 4

关于text宏定义不懂的,求解答。

[复制链接]
发表于 2018-10-5 19:26:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问一下,看了视频教学,教学中说visual c++宏定义了 TEXT,可以根据是unicode还是asc码来决定是w_char,还是char,就不用我们操心 了。但是visual c怎么知道是unicode还是asc码的环境呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-5 19:35:16 | 显示全部楼层
英文没有差别吧,unicode 是 ascii 的推广,前面一样的。unicode 看哪一个,支持其他语言。一般用 char 就好,没有涉及 MFC 吧?应该~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-5 23:51:59 | 显示全部楼层
所以答案你自己已经说过了,只是你没理解其含义。在winnt.h头或tchar.h头中有对应的宏定义。

代码节选
winnt.h

//
// Neutral ANSI/UNICODE types and macros
//
#ifdef  UNICODE                     // r_winnt

#ifndef _TCHAR_DEFINED
typedef WCHAR TCHAR, *PTCHAR;
typedef WCHAR TBYTE , *PTBYTE ;
#define _TCHAR_DEFINED
#endif /* !_TCHAR_DEFINED */

typedef LPWCH LPTCH, PTCH;
typedef LPCWCH LPCTCH, PCTCH;
typedef LPWSTR PTSTR, LPTSTR;
typedef LPCWSTR PCTSTR, LPCTSTR;
typedef LPUWSTR PUTSTR, LPUTSTR;
typedef LPCUWSTR PCUTSTR, LPCUTSTR;
typedef LPWSTR LP;
typedef PZZWSTR PZZTSTR;
typedef PCZZWSTR PCZZTSTR;
typedef PUZZWSTR PUZZTSTR;
typedef PCUZZWSTR PCUZZTSTR;
typedef PZPWSTR PZPTSTR;
typedef PNZWCH PNZTCH;
typedef PCNZWCH PCNZTCH;
typedef PUNZWCH PUNZTCH;
typedef PCUNZWCH PCUNZTCH;
#define __TEXT(quote) L##quote      // r_winnt
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-5 23:53:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-14 20:59:18 | 显示全部楼层
Visual c主观上并不知道你用的UNICODE还是ASCII。
但你如果放到UNICODE环境下,也就是某个头文件里定义了#define UNICODE,程序就会按照UNICODE的环境进行编译。
你如果放到ASCII环境下,也就是所有头文件里都没有定义#define UNICODE,程序就会按照ASCII的环境进行编译。
宏定义TEXT的目的就是无论你在UNICODE还是ASCII环境,都能编译通过,并保证使用字符参数的函数都能正常使用,并运行出正确结果(如果程序本身编写没有歧义的话)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 17:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表