1.2 开发工具和库

开发工具和库

编译工具

  • 编译器CL.EXE 将源码编译成目标代码 .obj
  • 链接器LINK.EXE 将目标代码、库链接生成最终文件
  • 资源编译器RC.EXE (.rc)将资源编译,最终通过链接器存入最终文件

路径:D:\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin

库文件和头文件

  • Windows库

kernel32.dll - 提供了核心的API,例如进程、线程、内存管理等。
user32.d - 提供了窗口、消息等API
gdi32.dll - 绘图相关的API

路径:C:\windows\system32

  • 头文件

windows.h - 所有windows头文件的集合
windef.h - windows数据类型
winbase.h - kernel32的API
wingdi.h - gdi32的API
winuserh - user32的API
winnt.h - UNICODE字符集支持

路径:D:\Windows Kits\10\Include\10.0.19041.0\um

windows.h可以说是头文件大集合,在包含头文件出错时可以依次将头文件修改为windows.h来尝试排错
在这里插入图片描述

写个程序

相关函数

int WINAPI WinMain(
HINSTANCE hInstance,//当前程序的实例句柄
HINSTANCE hPrevnstance,//当前程序前一个实例句柄
LPSTR lpCmdLine,//命令行参数字符串
int nCmdShow //窗囗的显示方式
)

int MessageBox(
HWND hWnd,//父窗口句柄,如果设置为 NULL,则消息框将作为独立的窗口显示
LPCTSTR IpText, //要显示在消息框中的文本内容
LPCTSTR lpCaption, //显示在标题栏中的文字
UINT uType //消息框中的按钮、图标显示类型
)//返回点击的按钮ID

这里使用Notepad++来写,通过命令行调用cl.exe的方式来编译链接
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这里程序停在这里说明MessageBox是一个阻塞函数,也就是当它被执行, 可能不会立即返回
那么这个函数如何才能推出阻塞状态呢,答案是当窗口退出时
我们看下它的返回值
在这里插入图片描述
也就是说当我们点击不同的按钮致使它退出时,该函数会因为我们点击的按钮不同返回不同的值
那么我们就可以根据不同的返回值来进行不同的操作
在这里插入图片描述

RC.EXE编译器(了解即可)

编译过程

  • 编写资源的文件 - .rc资源脚本文件
  • 编译rc文件 - RC.EXE
  • 将资源文件链接到程序中 - LINK.EXE

我们copy一个ico文件过来
然后创建一个hello.rc资源脚本文件
在这里插入图片描述
然后使用rc.exe编译hello.rc
在这里插入图片描述
.res文件和.obj文件都被统称为目标文件(中间文件)
编译完成后使用link.exe进行链接

在这里插入图片描述

程序编译链接过程

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦里捡到一只猫丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值