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
相关函数
句柄: 找内存的东西, 但不是指针
int WINAPI inMain(
HINSTANCE hInstance, //当前程序的实例句柄
HINSTANCE hPrevInstance, //当前程序前一个实例句柄
LPSTR IpCmdLine, //命令行参数字符串
int nCmdShow //窗口的显示方式
);
int MessageBox(
HWND hWnd, //父窗口句柄
LPCTSTR IpText, //显示在消息框中的文字
LPCTSTR IpCaption, //显示在标题栏中的文字
UINT uType //消息框中的按钮、图标显示类型
); //返回点击的按钮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
执行