新手问最初级,TEXT("HelloWin");是什么意思? 新手问最初级,TEXT("HelloWin");是什么意思?这是windows编程那本书上的例子,有一句: static TCHAR szAppName[] = TEXT("HelloWin");我不知 TEXT 在这里是什么意思,起何作用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 #define TEXT(quote) __TEXT(quote) // r_winnt#define __TEXT(quote) L##quote // r_winnt 这个宏定义我也查到了,但是我不明白什么意思。#define TEXT(quote) __TEXT(quote)quote 什么意思#define __TEXT(quote) L##quoteL##quote 什么意思 如果是程序需要跨国使用的话,需要使用UNICODE对字符串进行处理~ 前面有_TEXT是表示适应当前的编码环境,如果当前是UNICODE,则你的"HelloWin"就是宽字符UNICODE,否则是ASCII。前面加个L表示强制宽字符,一般都是移动平台上用的,要是希望的你程序能够跨平台就用_TEXT。 看的编译器参数 如果有unicode 那么 #define __TEXT(quote) L##quote // r_winnt//上边的L呢. 意思是让编译器编译成UNICODE字符的.#else /* UNICODE */ // r_winnt#ifndef _TCHAR_DEFINEDtypedef char TCHAR, *PTCHAR;typedef unsigned char TBYTE , *PTBYTE ;#define _TCHAR_DEFINED#endif /* !_TCHAR_DEFINED */typedef LPCH LPTCH, PTCH;typedef LPSTR PTSTR, LPTSTR, PUTSTR, LPUTSTR;typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR;#define __TEXT(quote) quote // r_winnt//这个就是没有定义unicode的时候.直接默认就是ascii字符TEXT作用呢 和 TCHAR一样. 当你编译器参数用了UNICODE _UNICODE 那么TCHAR 就被编译为typedef WCHAR TCHAR而WCHAR 有被定义为wchar_t例如 TCHAR szBuffer[]=TEXT("Hello");当是unicode时. 被编译为wchar_t szBuffer[]=L("Hello")是ascii时,编译为 char szBuffer[]="Hello" 1.宏定义,和函数有点类似,不过宏定义不需要指定参数的类型2.##是连接符,把前后两段连接起来,L表示Unicode一般使用Unicode这样用CString str=L"abc";也可以使用_T("");自动在Unicode与多字节下转换 可以把quote 当作一个变量例如 TEXT("hello world") 就相当于 __TEXT("hello world") 而##是连接符,练就2个字符串用到的。这样当#define __TEXT(quote) L##quote__TEXT("hello world") 相当于 L"hello world" L开头然后跟着一个字符串,标明这个字符串是宽字符的。 五子棋游戏中判断是否是单机版函数的开头这样写道 UDP网络传输文件 编译错误:could not execute:path not found win32 error-3 即时通讯系统外包——急 在视图类中如何得到用户区的大小?多谢! 非打印相关的虚函数之外的函数中怎样获得当前设置的打印纸的信息? 用 PostQuitMessage(0)结束程序,那还会收到WM_DESTROY消息吗? 怎样关闭运行中的所有程序 关于数据库查询 XMLspy代码折叠/打开的快捷键是什么? 旋转txt中的文本 配置文件的操作问题
#define __TEXT(quote) L##quote // r_winnt
#define TEXT(quote) __TEXT(quote)
quote 什么意思
#define __TEXT(quote) L##quote
L##quote 什么意思
那么 #define __TEXT(quote) L##quote // r_winnt
//上边的L呢. 意思是让编译器编译成UNICODE字符的.
#else /* UNICODE */ // r_winnt#ifndef _TCHAR_DEFINED
typedef char TCHAR, *PTCHAR;
typedef unsigned char TBYTE , *PTBYTE ;
#define _TCHAR_DEFINED
#endif /* !_TCHAR_DEFINED */typedef LPCH LPTCH, PTCH;
typedef LPSTR PTSTR, LPTSTR, PUTSTR, LPUTSTR;
typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR;
#define __TEXT(quote) quote // r_winnt
//这个就是没有定义unicode的时候.直接默认就是ascii字符
TEXT作用呢 和 TCHAR一样. 当你编译器参数用了UNICODE _UNICODE
那么TCHAR 就被编译为typedef WCHAR TCHAR
而WCHAR 有被定义为wchar_t
例如
TCHAR szBuffer[]=TEXT("Hello");当是unicode时. 被编译为wchar_t szBuffer[]=L("Hello")
是ascii时,编译为 char szBuffer[]="Hello"
2.##是连接符,把前后两段连接起来,L表示Unicode
一般使用Unicode这样用
CString str=L"abc";
也可以使用_T("");自动在Unicode与多字节下转换
可以把quote 当作一个变量
例如 TEXT("hello world") 就相当于 __TEXT("hello world")
而##是连接符,练就2个字符串用到的。这样当#define __TEXT(quote) L##quote__TEXT("hello world") 相当于 L"hello world" L开头然后跟着一个字符串,标明这个字符串是宽字符的。