首页 > Windows开发 > 详细

win32编程简介

时间:2018-09-01 16:57:24      阅读:174      评论:0      收藏:0      [点我收藏+]

           win32编程简介

复习Win32整理下知识.

为什么学习win32?

  我们要编写windos程序.都离不开API. 也就是我们所说的win32程序. 所以学好win32是你能不能再windows下编写程序的基础.

在win32下我们要学习的知识如下.

  1.字符  字符的存储.

  2.多线程编程.

  3.线程同步编程

  4.窗口程序.城后本质.

  5.消息机制.

  6.进程编程

  7.内存 管理

  8.文件操作.

  9.内存映射

  10.DLL以及静态库程序

  11.DLL注入技术.

  12.模块隐藏.脱链

  13.进程通信编程.

  14.HOOK技术.

二丶字符的本质

  我们发现学习Win32要学习很多知识.不过总结一下也没有那么多.主要是多用多学多做.

首先说下字符.

  字符有 ASCII编码格式.有 UNICODE格式. 也有UTF - 8 格式. 那么我们说下他们的存储以及管理吧.

1.ASCII编码.

  技术分享图片

ASCii编码表. 因为计算机是老外发明的.所以编码一开始只有127个.

而我们计算机存储的编码就是这种.

我们可以使用 十六进制工具查看一下. (winhex) 

1.新建文本文档.输入字符a

2.winhex查看字符存储的本质是什么.

关于第一步.省略.

技术分享图片

可以看到存储的是0x61 十进制是97 也就是a所计算机存储ascii编码的时候.存储的就是ascii编码表中的格式.

2.Unicode编码

  上图的编码是ASCII编码. 但是只能存储127个字符.但是怎么显示中文那? 所以出了一个新的编码表.也就是GB2312编码表或者是GB2312

从127往上还有一个编码表.用于显示特殊符号的. 而GB2312编码表就是使用两个这样的编码来显示的.但是有一个弊端.如果同样一个中文.你发给外国朋友.他打开就会显示乱码了.

因为每个国家的编码格式都不一样.所以最后UNICODE格式出示.

UNICODE格式规定. 每一个字符都会使用独立的编码来显示.

比如 0x41 0x32 这两个字节来表示 中国的中字这样你发到任何电脑上都可以看到.

注意. UNICODE只是解决了字符怎么表示.并没有规定怎么存储. 什么意思?

意思就是 中字代表的是 0x41 0x32 那么国字就可能代表 0x41 0x32 0x33 使用三个字节来表示.

所以UNICODE - 16出世了 

UNICODE-16 没两个字节来表示一个字符,如果不够两个字节或者超过两个字节.那么在增加两个字节来表示.

所以我们常说的UNICODE 就是说的UNICODE-16

3.UTF-8编码

上面说了的UNICODE-16解决了存储方式.但是也有弊端. 一个字节我按照两个字节来表示. 那么不是浪费了一个空间吗.特别是用于网络传输的时候.

所以UTF-8出来了. UTF - 8 就是可变长的. 什么意思.意思就是说.一个字节我就用一个字节表示.两个字节我就用两个字节表示. 只不过就是解析困难.

三丶代码中的宽字符窄字符

在代码中我们的宽字符窄字符就可以互相使用了.

char str[] = "A"                                               Asc版本编码使用
wchar_t str[] = L"A"                                        Unicode版本
TCHAR str[] = TEXT("A")                                  兼容性版本使用.
TCHAR 是windows中的一个宏.如果你的当前程序属性设置的是ASC编码形式.
那么TCHAR就是char.如果是UNICODE 那么TCHAR就是 wchar_t类型.

TEXT()是一个宏.是一个连接符. 如果是char类型.那么链接符号就是空宏.
如果是wchar_t类型. 那么连接符就是 L. 
L表明是宽字符的意思.

他们在内存中的存储方式也不同了.

1.A版本 长度为1. 结尾一个0

2.U版本长度为2. 结尾两个0结束.

 

如果使用了不同版本的字符.那么就要使用对应的库来操作这些字符.

A版本.

  printf       strlen  strcat strcmp  strstr

U版本

  wprintf   wcslen  wcscat wcscmp wcsstrstr

关于字符串操作函数具体查询MSDN. 或者Google搜索一下.

 

win32编程简介

原文:https://www.cnblogs.com/iBinary/p/9570751.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!