mfc 教程

源代码在线查看: untitled-25.txt

软件大小: 2284 K
上传用户: gjinli88
关键词: mfc 教程
下载地址: 免注册下载 普通下载 VIP

相关代码

				        ”H6llO”
				那么编译器将从ANSI字符组成该字符串。如果您接如下方式声明了字符串:
				        L”H6110”
				那么编译器将使用Unicode字符。但是如果您使用MFC的T宏,如下所示:
				      .T(”Hello”)
				如果定义了预处理程序符号UNICODE,那么编译器将使用Unicode字符,而如果没有定义
				该预处理程序符号,那么编译器将使用ANSI字符。如果您所有的字符串常量都使用T宏
				声明,那么您可以通过定义.UNICODE生成一个特殊的仅适用于 Windows NT的版本。隐式
				定义这个符号将定义一个名为UNICODE(没有下划线)的相关符号,它将选择众多Windows
				API函数中的Unicode版本,这些API函数具有ANSI和Unicode两种版本。当然,如果您希
				望相同的可执行程序可以在这两种平台上运行,而且您不关心 ANSI应用程序在 Windows NT
				下导致的性能下降,那么您可以忘掉一T宏。在本书中我将通篇使用_T,以使示例代码与字
				符集无关。
				    使用_T宏修饰字符串常量就足以使一个应用程序完全不关心其字符集吗?回答是并
				不一定。您还必须做下面的工作:
				    .将字符声明为TCHAR类型而不是。bar类型。如果定义了UNICODE符号,TCHAR将
				        求值为wchart,它是一个16位的Unicode字符。如果没有定义.UNICODE,TCHAR将
				        变为普通古老的。bar。
				    .不要使用。bar。或者 wchart。来声明 TCHAR字符串的指针,而应当使用 TCHAR
				        。,或者更佳的 LWhTR(指向 TCHAR字符串的指针)和 LPCThTR(指向 C。list TCHAR
				        字符串的指针)数据类型。
				    .不要认为一个字符只有8位宽。如果要将以字节表示的缓冲区长度转变为以字符
				        表示的缓冲区大小,可以借助sizeof(TCHAR)划分缓冲区长度。
				    .将对C运行时间库(例如,strcpy)中字符串函数的调用替换为Windows头文件Tchar
				        .h(例如,-tCSCpy)中的对应宏。
				    考虑下面的代码片段,其中使用了ANSI字符集:
				      char szMsq[256);
				      pwnd>GetwindoWText(szMsg, s。zeof(szMsg》;
				      strcat(szMsg,”ss the wwndow title”);
				      wessageeox(szMss);
				如果将上面的代码修订为与字符集无关,就是下面的代码:
				      TCHAR SZMSq[256」;
				      pwnd>GetwindowText(szMsq, sizeof(szMsg)/ sizeof(TCHAR));
							

相关资源