引言
在 Windows 中,我们的进程通常都运行在一个叫 Windows 的子系统上。在 Windows 子系统上分为 console、GUI 等子系统。进程如果想要调用系统 API,通常都需要先调用子系统的 API,来做一次转换。简单结构如下:

而这里我们说的 Native App 呢,它是不依赖任何子系统,可以直接通过 ntdll.dll 来调用系统 API 的。简单结构如下:

Native App 的优势
对比普通的 Win32 或者说其他子系统应用,主要有以下几个优势
- 性能好。使用 native 接口,可以绕过标准 Windows 应用程序接口,从而去掉一个软件层,可以加快运行速度。
- 功能强大。标准 Windows Api 无法提供的功能,也可能通过 Native Api 来实现。
- 依赖少。不依赖子系统的 dll,减少很多依赖。
- 灵活性好。此应用不依赖子系统,所以不用等子系统启动后才能运行。
开发 Hello Native
创建项目
VS 中是没有 native 应用的模板的,所以这里我们先创建一个 console app,然后基于 cosnole app 来进行修改部分配置即可。

本文介绍了如何从头开始编写一个不依赖任何子系统的Windows Native App,详细步骤包括创建项目、修改配置、添加依赖、编写入口代码,并通过vcpkg安装phnt库。开发Native App的优势在于性能提升、功能增强、依赖减少和灵活性提升。文章最后展示了如何运行和调试Native App。
最低0.47元/天 解锁文章
2466

被折叠的 条评论
为什么被折叠?



