windows.h 中包含了 许多其他的头文件
主要是 WINUSER.H 使用者界面
WINBASE.H kernel函数
WINDEF.H 一些类型的define
WINNT.H 支持 UNICODE形态定义
WINGDI.H 包含图形界面函数
应用程序的入口函数
int WINAPI WinMain //WINAPI #define WINAPI _stdcall 标准调用约定 很多语言都是用的这种调用约定
(HINSTANCE hInstance, //实例的句柄 用于唯一标示应用程序
HINSTANCE hPrevInstance, //先前实例的句柄在win 32 下为 0已经被摒弃
LPSTR lpCmdLine, //command line
int nShowCmd ); /窗体的显示方式
UNICODE 是为了解决ASCII不能表示所有语言的问题
wchar_t 原型 typedef wchar_t unsigned short ; //占2个字节也就是 16位 宽字 32位下
wchar_t * p=L"DSAFAFD" ; //L是long 告诉编译器使用每一个字符占2个字节
wchar_t c=L'p'; //定义宽字节 字符 即使不加L那么编译器也默认将她设置为2个字节
wcslen 求宽字节字符串的长度 不包括 '\0'
wprintf 是printf的宽字原版
对应就有wscanf 这个是再 WCHAR.H中定义的
但是 有时候 我们 的程序需要 单字节 也需要双字节 那么 wchar_t和char 的 混合就混乱了 由于处理的函数 不用我们希望有一个可以同时处理他们的 类型
TCAR 如果定义了 _UNICODE 识别字那么就是 typedef wchar_t TCHAR 如果没定义的 typedef char TCHAR
具体看 TCHAR.H源文件
#define _T(x) __T(x)
#define _TEXT(x) __T(x)
在TCHAR.H中这样定义了 就是 说我们可以用 _T __T _TEXT中的任意一种 。
对应求字符个数的函数 就是 _tcslen ()
如果定义了 _UNICODE 那么就是 #define _tcslen wcslen 否则 #define _tcslen strlen
如果要使用_UNICODE 识别那么 就在 Project ->Setting->c/c++ Language -> Preprocessor Definition中加上 _UNICODE 那么 系统的 就会默认使用_UNICODE 识别类型
在 WINNT.H 中增加了新的 类型定义 CTYPE.H 中定义了 wchar_t 为unsigned int
typedef char CHAR ;
typedef wchar_t WCHAR ;
实际上 MessageBox这个函数 并不是真正的 消息框原型
在WINUSER.H中我们找不到 MessageBox的函数定义 也就是说没有 MessageBox的函数进入点 但是 我们发现
有 MessageBoxA 和 MessageBoxW 这两个 函数 一个表示单字节 一个表示宽字 我们在使用时直观调用 MessageBox就行了 因为
#ifdef UNICODE
#define MessageBox MessageBoxW //如果定义了UNICODE 那么 就是用MessageBoxW
#else
#define MessageBox MessageBoxA
#endif // !UNICODE 非UNICODE 的时候调用的是MessageBoxA
这样的好处是一旦定义了 UNICODE 那么全都是UNICODE 表示 MessageBoxW否则就是 MessageBoxA
还有 windows定义了一组与 C语言字符串处理函数相当的函数
ILength = lstrlen (pString) ;
pString = lstrcpy (pString1, pString2) ;
pString = lstrcpyn (pString1, pString2, iCount) ;
pString = lstrcat (pString1, pString2) ;
iComp = lstrcmp (pString1, pString2) ;
iComp = lstrcmpi (pString1, pString2) ;
这些函数 其实和 TCHAR 一样的用法 如果定义了UNICODE 就是 那么这些函式将接受宽字串,否则只接受常规字串。
windows中不可以使用 printf 但是可以使用sprintf进行格式化文本
int sprintf (char * szBuffer, const char * szFormat, ...)
{int iReturn ;va_list pArgs ;
va_start (pArgs, szFormat) ;
iReturn = vsprintf (szBuffer, szFormat, pArgs) ;
va_end (pArgs) ;
return iReturn ;
}
标准版 sprintf swprintf _stprintf
我们可以对宽字 单字节的字符进行格式化
分享到:
相关推荐
该项目是一款基于事件总线的C/C++嵌入式开发框架,其设计源码总计112个文件,涵盖43个头文件、39个源文件、9个Markdown文档、4个源代码文件、3个工程文件、3个配置文件、2个Python脚本以及1个Git忽略文件。框架最低占用ROM 1.5KB,RAM 172字节,具有极低的资源消耗。核心技术采用事件总线,支持Reactor和状态机两种模式,并具备协作式内核,确保极高的可靠性。框架支持深度裁剪,便于移植,适用于对资源敏感的嵌入式系统开发需求。
本项目为全栈式化妆品网站设计源码,采用JavaScript进行开发,包含90个文件,涵盖40个SCSS样式文件、22个JavaScript脚本文件、8个HTML模板文件、6个PNG图片资源、5个CSS样式文件、3个JSON配置文件以及其他类型文件。该网站旨在提供专业的化妆品展示和购物体验。
本项目是一款基于HTML和Java开发的NBA球星信息管理系统源码,共包含84个文件,涵盖23个Java源文件、23个JPG图片文件、10个ICO图标文件、9个HTML页面文件、5个属性文件、4个PNG图片文件、2个XML配置文件、2个SQL数据库文件、1个Git忽略文件和1个JAR库文件。该系统专注于管理2021年NBA球星的相关信息,旨在提供高效的信息管理解决方案。
1. 核心模块 o 1.1. 介绍 o 1.2. _ _builtin_ _ 模块 o 1.3. exceptions 模块 o 1.4. os 模块 o 1.5. os.path 模块 o 1.6. stat 模块 o 1.7. string 模块 o 1.8. re 模块 o 1.9. math 模块 o 1.10. cmath 模块 o 1.11. operator 模块 o 1.12. copy 模块 o 1.13. sys 模块 o 1.14. atexit 模块 o 1.15. time 模块 o 1.16. types 模块 o 1.17. gc 模块 2. 更多标准模块 o 2.1. 概览 o 2.2. fileinput 模块 o 2.3. shutil 模块 o 2.4. tempfile 模块 o 2.5. StringIO 模块 o 2.6. cStringIO 模块 o 2.7. mmap 模块 3. 线程和进程 o 3.1. 概览 o 3.2. threading 模块 o 3.3. Queue 模块 o 3.4. thread 模块 o 3.5. comm
技术资料分享电子镇流器知识技术资料开发设计用的重要资料.zip
该项目是采用STC15W408AS芯片,基于串口通信技术实现的赛博沙漏设计源码。包含44个文件,涵盖C语言源代码、头文件、项目配置、PCB文档和SCH文档等。该设计通过串口接收陀螺仪与加速度计的数据,实现赛博沙子的动态流动效果和重力反馈,为用户带来独特的交互体验。
该系统也没版本号,此版本目前是比较新的版本,增加了订单投诉功能,和一个好看的二次元模板。 此版本是全开源版,无一处加密文件,系统默认是安装后是打不开的, 本站特别修复了BUG文件,在PHP7.4环境下也没问题 测试环境:Nginx 1.20+PHP7.4+MySQL 5.7(官方推荐配置.hp7.1+myqsl5.6) 直接访问域名安装即可
lstm时间序列预测 基于pytorch搭建多特征CNN-LSTM时间序列预测
本设计源码是基于Python和HTML开发的2020版DKY选修课课程资源,总计包含1201个文件,其中Python源代码文件679个,HTML文件14个,以及其他类型文件如txt、exe、xml等。该源码适用于DKY选修课程的教学需求。
本项目为基于Vue框架设计的医院仓库管理UI源码,包含299个文件,涵盖102个Vue组件、88个SVG图标、76个JavaScript脚本、9个SCSS样式表、4个PNG图像文件以及少量其他辅助文件。该系统旨在高效管理医院仓库,适用于各类医疗机构。
使用stm32F103和F407的板子实现RFID的完整项目读取id卡
该项目是一款采用C#语言开发的PM2.5空气质量数据定时刷新系统源码,包含1096个文件,涵盖668个C#源代码文件、149个AML文件、73个SSK文件、34个JSON文件、26个DLL文件、19个PNG文件、14个JPG文件、14个csproj文件、12个XML文件、10个config文件。系统旨在实现PM2.5数据的实时更新,适用于相关环境监测与数据管理应用。
beaker-Python用于会话和缓存的 WSGI 中间件
转子自动化焊接检测工作台_三维3D设计图纸.zip
技术资料分享ARM.linux无线通讯实验AT91.zip
IGWO-SVM:改良的灰狼优化算法改进支持向量机。 采用三种改进思路:两种Logistic和Tent混沌映射和采用DIH策略。 采用基于DIH维度学习的狩猎搜索策略为每只狼构建邻域,增强局部和全局搜索能力,收敛速度比GWO更快,适用于paper。
本项目为基于Java语言的Webowt威博称重系统设计源码,包含共计148个文件,涵盖131个Java源文件、8个XML配置文件、5个属性文件、1个Git忽略文件、1个文本文件、1个虚拟机文件、1个SQL文件,旨在实现称重数据的处理与管理。
塑料成型机_三维3D设计图纸.zip
小型液压泵站_三维3D设计图纸.zip
钳口校准器_三维3D设计图纸.zip