1.02 开发工具和库

编译

编译器 CL.EXE : 将源代码(C/CPP)编译成目标代码.obj(机器码 二进制文件)

链接器LINK.EXE : 将目标代码、库链接生成最终文件

资源编译器 RC.EXE : 将资源(.RC)编译,最终通过链接器存入最终文件

路径:C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin

Windows库

kernel32.dll :提供了核心的API,例如进程、线程、内存管理等

user32.dll :提供了窗口、消息等API

gdi32.dll :绘图相关的API

路径:C:\Vindows\System32

头文件

  • windows.h :所有windows头文件的集合
  • windef.h :windows数据类型
  • winbase.h :kernel32API
  • wingdi.h:gdi32的API
  • winuser.h :user32API
  • winnt.h :UNICODE字符集支持

路径:C\Program Files(x86)\Microsoft SDKs\Windows\v7.0 A\Include

给基本数据类型起别名的好处

API 基本类型变更, 不会受到影响, 比如 原来是int 现在为 long

相关函数

句柄: 找内存的东西, 但不是指针

  1. int WINAPI inMain(
  2. HINSTANCE hInstance, //当前程序的实例句柄
  3. HINSTANCE hPrevInstance, //当前程序前一个实例句柄
  4. LPSTR IpCmdLine, //命令行参数字符串
  5. int nCmdShow //窗口的显示方式
  6. );
  7. int MessageBox(
  8. HWND hWnd, //父窗口句柄
  9. LPCTSTR IpText, //显示在消息框中的文字
  10. LPCTSTR IpCaption, //显示在标题栏中的文字
  11. UINT uType //消息框中的按钮、图标显示类型
  12. ); //返回点击的按钮ID

编译过程

https://www.bilibili.com/video/BV1Qb4y1o7u9?t=2897.5

环境准备: VCVARS32.BAT

编译程序-CL :CL.EXE-C XXX.C

链接程序-LINK :LINK.EXE xxx.obj xxx.lib (为什么.dll 这里要写错.lib 待说)

.obj + .res > .exe

执行