当前位置: 首页 > wzjs >正文

换域名对网站的影响阜宁网站制作收费标准

换域名对网站的影响,阜宁网站制作收费标准,如何对现有的网站改版,注册网站好的平台专栏导航 上一篇:第2章,[标签 Win32] :Windows 字符数据类型 回到目录 下一篇:无 本节前言 在上一节,我们讲解了 WIndows 程序设计中的字符与字符指针类型,包括 ASCII 字符与字符指针,也包…

专栏导航

上一篇:第2章,[标签 Win32] :Windows 字符数据类型

回到目录

下一篇:无

本节前言

在上一节,我们讲解了 WIndows 程序设计中的字符与字符指针类型,包括 ASCII 字符与字符指针,也包括 Unicode 字符与字符指针。

本节,我们来讲解,使用字符串作参数的 Windows 函数。这样的一些个 Windows 函数,所使用的字符串参数,可能是 ASCII 字符串,也可能是 Unicode 字符串。

如何编写程序,使得我们的程序,在调用这些个,使用字符串参数的 Windows 函数的时候,能够兼容 ASCII 字符串与 Unicode 字符串两种字符串参数,是我们本节要去解决的问题。

我们开始。

一.    MessageBox 宏函数

在之前的课节里,我们介绍过 MessageBox 函数。严格来讲,它并不是一个函数,而是一个宏函数。实际调用它的时候,会调用两个函数版本中的一个。这两个函数版本,一个是 ASCII 版的 MessageBoxA,另一个是 Unicode 版的 MessageBoxW 。

MessageBoxA 和 MessageBoxW,它俩不是宏,而是地地道道的函数。

那么,当我们使用 MessageBox 宏的时候,我们究竟是在调用着 MessageBoxA,还是在使用着 MessageBoxW 呢?

请看下面的代码块。

#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif

也就是说,当我们定义了 UNICODE 标识符的时候,MessageBox 宏函数,实际上就等同于 MessageBoxW 函数。当没有定义 UNICODE 标识符的时候,MessageBox 宏函数,实际上就等同于 MessageBoxA 函数。

在这里,UNICODE 标识符,与 _UNICODE 标识符,我们可以将其看作是同义语,对其不作区分。

我们在下面的文章链接里,讲解了如何定义 _UNICODE 标识符,也就是相当于讲解了如何定义 UNICODE 标识符。

第2章 :编写兼容多字节字符集和 Unicode 字符集的 Windows 程序

在上述文章链接的【四.(二)】里面,我们讲解了设置方法。

我们来看一看 MessageBoxA 与 MessageBoxW 的函数声明。

MessageBoxA 的声明如下。

WINUSERAPI int WINAPI MessageBoxA (HWND hWnd, LPCSTR lpText,
                                                                LPCSTR lpCaption, UINT uType);

在上面的函数声明里面,首先出现的东西是 WINUSERAPI,这个东西我们不用管,忽略它就可以了。我们可以将这个东西当作是不存在。这不会影响我们的理解。

接下来的 int,就是返回值类型,为 int 型。

接下来的 WINAPI,它表示的是调用约定。在计算机编程里面,存在着很多种函数调用约定。其中有两种,一个是标准调用,Windows 将其标记为 __stdcall 。另一个是 CDECL 调用约定,Windows 将其标记为 __cdecl 。大多数的 Windows SDK 函数使用的调用约定是标准调用,而大多数的 C 运行库函数,以及我们自定义的函数,都用的是 CDECL 调用约定。

接下来的 MessageBoxA,它是函数名。

再往后,就是形参列表了。

在形参列表里,第一个形参的类型为 HWND,它的含义是窗口句柄。啥是窗口句柄,此处你可以暂时不去深究,有个印象就可以。在将来的 Windows 编程知识的学习中,窗口句柄的概念,我们时不时地都会用到。用得多了,即使不理解,也可以熟练地使用它。此处,我们只要求大家对【窗口句柄】这个数据类型有一个概念。

第二个形参的类型为 LPCSTR,这个 LPCSTR,与【const char *】含义相同。也就是说,第二个参数,需要的是一个常量字符指针。这个字符指针,指向的是一个 ASCII 字符串,字符串中的每一个字符,都是 char 型的。

第三个形参的类型也是 LPCSTR,与第二个参数的类型相同。

第四个形参的类型为 UINT,这个,我们之前没有讲,以后,我们会有专门的章节来列举 Windows 中的各种数据类型。之前,我们讲解过关于字符与字符串的数据类型。在这里,这个 UINT,它其实就是 unsigned int 的意思。

讲完了 MessageBoxA 的函数声明,我们再来看 MessageBoxW 的函数声明。

WINUSERAPI int WINAPI MessageBoxW (HWND hWnd, LPCWSTR lpText,
                                                                LPCWSTR lpCaption, UINT uType);

MessageBoxW 的函数声明与 MessageBoxA 大致相同,只是涉及字符串参数的部分有所不同而已。

MessageBoxA 的参数列表里面,使用的字符串参数类型,为 LPCSTR,也就是【const char *】类型。也就是说,MessageBoxA 使用的字符串参数,为 ASCII 字符串,字符串中的每一个字符,为 char 型字符。

MessageBoxW 与 MessageBoxA 不同,它使用的字符串参数类型,为 LPCWSTR,也就是【const WCHAR *】类型,是【const wchar_t *】类型,是【const unsigned short *】类型。也就是说,MessageBoxW 使用的字符串参数,为 Unicode 字符串,字符串中的每一个字符,为 Unicode 字符。

小结一下,MessageBoxA 函数与 MessageBoxW 函数的函数声明大致相同,区别只在于使用的字符串参数的类型。MessageBoxA 函数使用的字符串参数,为 ASCII 字符串,而 MessageBoxW 函数使用的是 Unicode 字符串。

你可以在程序中,直接使用 MessageBox,而不显式地指定使用 MessageBoxA 或 MessageBoxW 。此时,根据你是否设置了 UNICODE 标识符,编译器会自动选择使用 MessageBoxA 或 MessageBoxW 。此时,如果你定义了 UNICODE 标识符,则 MessageBox 宏会被视为 MessageBoxW 函数。如果没有定义 UNICODE 标识符,则 MessageBox 宏会被视为 MessageBoxA 函数。

你也可以显式地指定,是使用 MessageBoxA 还是 MessageBoxW 。这样一来,在同一个程序代码里面,我们可以混合使用 ASCII 版的 Windows 函数与 Unicode 版的 Windows 函数。

不过,一般来讲,我们还是推荐大家直接使用通用的宏,也就是使用 MessageBox,而不是显式地指定 ASCII 版的 MessageBoxA 或者 Unicode 版的 MessageBoxW 。

二.    使用字符串参数的其它 Windows 宏函数

许多的 Windows 宏函数都与 MessageBox 类似,它们均包含 ASCII 版本与 Unicode 版本两种。

比如 Textout 函数,也包含了 TextOutA 和 TextOutW 两个版本。

所有的这些个使用字符串参数的 Windows 函数,它们均分为 ASCII 版与 Unicode 版两种。ASCII 版的 Windows 函数,在宏名的后面,加上一个 A 后缀。Unicode 版的 Windows 函数,在宏名的后面,加上一个 W 后缀。

结束语

本节的内容,不知道,你看懂了没。

如果没看懂,多看几遍吧。某些内容,可以暂时不去深究,了解一下,有个印象就可以。

本节结束。

专栏导航

上一篇:第2章,[标签 Win32] :Windows 字符数据类型

回到目录

下一篇:无


文章转载自:

http://cqVwKWE0.ykcby.cn
http://rqRBcaXq.ykcby.cn
http://UBHI57FK.ykcby.cn
http://DXM7KYvC.ykcby.cn
http://4Hhm2BIt.ykcby.cn
http://BdA2iNP5.ykcby.cn
http://FrFGA5DC.ykcby.cn
http://MxkcAsjr.ykcby.cn
http://3Hp4RVsF.ykcby.cn
http://o4Eo3u6X.ykcby.cn
http://KPJMUfo0.ykcby.cn
http://9HISwnNI.ykcby.cn
http://IP5mCZ5J.ykcby.cn
http://jiYbHhlg.ykcby.cn
http://7330hNnk.ykcby.cn
http://AITi5FCk.ykcby.cn
http://d0byAbGV.ykcby.cn
http://ktBkcMy2.ykcby.cn
http://jiFNXlQi.ykcby.cn
http://6Vap10CR.ykcby.cn
http://n6i76P09.ykcby.cn
http://OkMRLfbs.ykcby.cn
http://QTd4WHpq.ykcby.cn
http://hDcpuZHH.ykcby.cn
http://LeOPNHiG.ykcby.cn
http://G1RjHmT0.ykcby.cn
http://ETMxTcGZ.ykcby.cn
http://ZcCMvwwi.ykcby.cn
http://3UpA1mon.ykcby.cn
http://h8HOfZqS.ykcby.cn
http://www.dtcms.com/wzjs/605273.html

相关文章:

  • 做网站时怎样图片上传怎么才能让图片不变形有什么插件吗南京高端定制网站建设
  • 自助建站和网站开发的利弊爱企业 查询入口
  • 安徽网站开发公司来几个好看的网站
  • 网站维护一年多少钱网站推广定义
  • 注册一个免费的网站吗网站建设张家港
  • 深圳网站建设哪个公司号南通网站制作维护
  • 做网站盈利方式私域电商软件有哪些
  • 企业网站微信公众号的建设事迹一般通过后补贴什么时候到
  • 企业网站seo哪里好仙桃网
  • 做网站 收费学做网站的软件
  • 品牌网站建设 杭州wordpress带登陆主题
  • ai做图标教程网站酱香拿铁采取了哪些网络营销方式
  • 珠海网络公司网站建设岳阳市城市建设投资公司网站
  • 网站开发 混合式 数据库用phpmysql做网站
  • 杨浦苏州网站建设网络设计工作室
  • 宁波建设网站公司推荐专业的企业管理软件
  • 网站建设报告怎么写网站备案地点选择
  • 做的网站上更改内容改怎么回事搜索引擎广告推广
  • 网站服务器提供什么服务seo推广公司招商
  • 建设网站怎么输入分子式网站关键词怎么做排名
  • 瓯海网站建设域名购买网
  • 网站建设开发ppt网站关键词提升
  • linux做网站用什么语言wordpress站点改名
  • 广州招聘网站制作网页设计图片主流尺寸
  • 网站赌场怎么做代理电脑做网站空间
  • 科普互联网站建设企业网站用什么cms比较好
  • gta5显示网站建设中莱州双语网站
  • 建网站花费北京社保网站做社保增减员
  • 一次备案多个网站宜宾网站建设多少钱
  • 网站建设 答辩记录教育培训班