Win32SDK程序设计01:字符集

本文介绍了Win32SDK程序设计的基本概念,包括指令集的分类,如CISC和RISC,以及x86架构的汇编语言。同时,讨论了C语言的不同版本和回调函数的本质。学习Win32程序设计需要熟悉Windows操作系统和掌握C语言,特别是结构体和指针。文章还深入探讨了字符集,如ASCII、GBK和UNICODE及其编码存储方式,并提到了Win32API的系统调用性质及在程序开发中的应用。
摘要由CSDN通过智能技术生成

基本概念

指令集

指令集概念

  • 说指令集的时候必须指定CPU的架构:每种架构的CPU都有自己的指令集,x86架构的CPU有自己的指令集,ARM架构的CPU有自己的指令集
  • CPU指令集就是CPU能够识别并执行的二进制指令的集合

指令集分类

  • CISC vs RISC
  • 复杂指令系统计算机 vs 精简指令系统计算机

x86架构汇编

  • Intel汇编:Intel公司的汇编,Windows平台下使用的汇编
  • AT&T汇编: GCC中的使用的汇编

C语言分类

  • ANSI C:标准C C89 C99 C11
  • GUN C

回调函数

  • 回调的本质Callback:Don’t Call Me, I’ll Call You
  • 显示器中所有的元素都会绘制出来的,即画出来的

学习Win32程序设计的条件

  • 熟悉Windows操作系统:操作系统必须配合CPU

  • 熟练掌握C语言:ANSI C
    结构体
    指针
    C语言函数库:C语言的编译器提供的(编译系统提供);Win32 API是Windows操作系统提供的

  • 开发环境:编译器、连接器 VC 6

  • 函数调用约定:规定调用函数时实参进栈方向以及函数调用结束时的栈平衡由谁来维护(是由主调函数还是被调函数来平衡栈)
    __cdecl
    __stdcall
    __fastcall(已经过时)

  • 从Windows 3.0开始,Windows操作系统开始对Intel 286、386、486的CPU的保护模式提供支持

  • GUI:what you see is what you get 所见即所得

  • 窗口:一块矩形区域

Windows运行机制的核心:动态连接
Kernel32.dll:内存管理、IO管理、多任务管理…
User32.dll:窗口管理…
GDI32.dll:绘图管理…

Windows编程的API与C语言库函数的API的区别

  1. 调用Win32 API本质是系统调用,syscall,CPU的控制权从用户态切换带核心态,调用完了,CPU控制权又从核心态切换回用户态
  2. C语言的函数库是有编译系统提供的API,C语言函数库的API可能会调用Win32的API,也可能不会调用,例如printf函数内部肯定是一个syscall调用了Win32的API来实现的;strlen函数就无须调用Win32的API,因为自己就能实现
  3. Win32的API的代码在链接的时候并没有链接到目标程序中去,它的目标代码在DLL中,在执行的时候才动态加载的,链接的时候只是将API的位置信息写在了目标程序中
  4. 在程序链接的时候会将C函数库的代码链接到目标程序中去
  5. 操作系统提供 vs C语言的编译器提供

使用MFC开发应用程序的时候还会遇到MFC的DLL
Windows的DLL
MFC的DLL
C标准函数库
在使用MFC的时候一般都选择静态库,因为选择MFC的动态库的话,那么要求跑应用程序的计算机必须安装能够MFC的运行环境,这是不科学的
所有的Windows操作系统都会提供DLL,操作系统安装完成后就有了,因为操作系统自己也是依靠一堆DLL运行起来的 C:/WINDOWS/s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值