初识Windows API

Ustinain 25 0 0

Windows API是什么

Windows系统是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务 ,就是一个函数)可以帮应用程序达到开启视窗、描绘图形、使用周边设备等,由于这些函数服务的对象是应用程序(Application),所以便称之为Application Programming Interface,简称API函数,Win32 API也就是Microsoft Windows 32位平台的应用程序接口

Windows API 就是Windows应用程序接口,是针对Microsoft Windows 操作系统家族的编程接口,这样的系统包括Windows8.1、Windows8、WIndows7、Windows Vista、Windows XP、Windows Server2012、Windows Server2003、Windows 2008 R2、Windows 2000、Windows 95等等,几乎windows所有版本

其中位WIndows操作系统的编程接口为,Win API以便于于以前的16位的Windows API区分开

Windows API大致分为以下几个函数大块:

  1. 基本服务
  2. 组件服务
  3. 用户界面服务
  4. 图形多媒体服务
  5. 消息和协作
  6. 网络
  7. web服务

举个例子,比如我们要和删除文件,这个时候我们可以使用 win32中 DeleteFile()函数

语法
BOOL DeleteFile(
  LPCTSTR lpFileName
);

可以看到DeleteFile返回类型是BOO类型,需要的参数是lpFileName ::: tip 提示 从Windows 10版本1607开始,对于此功能的unicode版本(DeleteFileW),您可以选择删除MAX_PATH字符限制,而无需添加“ \?\”。有关详细信息,请参见命名文件,路径和命名空间的“最大路径限制”部分 。 :::

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零(0)。要获取扩展的错误信息,请调用 GetLastError。

如果应用程序尝试删除不存在的文件,则 DeleteFile函数将失败,并显示 ERROR_FILE_NOT_FOUND。如果该文件是只读文件,则该函数将失败,并显示 ERROR_ACCESS_DENIED。

以下列表列出了一些删除,删除或关闭文件的技巧:

  • 要删除只读文件,首先必须删除只读属性。
  • 要删除或重命名文件,您必须对文件具有删除权限,或者在父目录中具有删除子权限。
  • 若要递归删除目录中的文件,请使用 SHFileOperation函数。
  • 要删除一个空目录,请使用 RemoveDirectory函数。
  • 要关闭打开的文件,请使用 CloseHandle函数。

我们来实际操作一下GetLastError函数,理解一下他的用法:

首先我们在桌面上创建一个名为hello.txt的文本文件,然后调用win32 API中GetLastError函数来进行操作(使用API删除文件会直接删掉,并不会放入回收站)

#include <windows.h>
int main() {
    BOOL a;
    const char file_path[] = "C:\\Users\\86132\\Desktop\\hello.txt";
     a = DeleteFile(file_path);
    printf("返回值=%X  扩展错误信息=%d",a, GetLastError());
    return 0;
}

hello.txt文件被成功删除,程序返回 返回值 若是文件不存在,程序返回

image

::: tip 虽然返回值只有0或者1 但是系统扩展错误信息却有很多,大家可以自己手动尝试一下 ::: 这期的文章就到这里,虽然很基础,但学习却是一个逐渐积累的过程,三天打鱼两天晒网肯定是不行的,只要有一丝的收获,将这个收获X时间得到的就是技术与财富。

预览图
收藏
评论区
守株待兔
最新文章
dll导出函数 2021-04-14 22:42
C语言_练习题(一) 2021-03-17 21:38
C语言_练习题(一) 2021-03-17 21:38
C语言_二进制文件 2021-03-15 21:36

导读