windows API API初学,什么是API?

2 篇文章 0 订阅
1 篇文章 0 订阅

         这几天由于某学原因需要学习一下Windows API编程,一开始拿到这个问题事我就很懵,询问了一些人也没有很明白。当我又去找了一些视频、教程以及看了一些文章之后才明白了其代表的意思。一下文章是我初学API时对其的理解,如有不对的地方还请各位大神及时批评指正。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

我们先来谈一下什么是API。对于很多学习过编程的人应该都知道一个名词“接口”。故名思极就是留出来供其他开发者使用其函数或功能的一个链接方式。API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。 [1]  目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。(来自百度百科)

所以说windows API就是windows下的应用程序接口。windows作为一个系统本身为了能够让运行,其中就会拥有很多的函数或库如.dll类的。这些函数或库就可以直接调取windows的硬件设备如内存,键盘,鼠标等。而无论是任何一种操作系统为了能够日后的开发升级都会为开发者留出各种各样的“接口”。而这些ji接口我们就可以称其为API。所以说Windows API就是windows 系统下的应用程序接口,我们可以通过这些接口去直接使用windows的一些功能或应用。

综上所述API 仅仅是一种用于进一步开发的函数库。其并不是一种语言或软件(我一开始一直在纠结它究竟是什么语言/笑哭/)。无论是哪一种语言如C/C++,java,python,C#,PHP等都拥有其函数库,我们直接调用即可。(由于本人技术有限仅仅不会全介绍)。如C/C++中的#include <Windows.h>;python中的import win32api等。先用一个C/C++程序来展示一下其使用方式:

#include <conio.h>
#include <Windows.h>//调用win头文件
using namespace std;

int main()//使用windows系统函数也是使用main()函数
{
	//弹出一个消息框函数,第一个参数为副窗口一般写NULL,第二个参数是消息的内容,第三个参数是标题,第四个参数是按钮(常量)
	MessageBox(NULL, TEXT("Hellow API"), TEXT("标题"), MB_OK);
	//设定鼠标位置SetCursorPos(int X,int Y)
	SetCursorPos(0,0);

	//无限设定(放弃鼠标/偷笑/)
	while (true)
	{
		SetCursorPos(0, 0);
		Sleep(50);//小延迟,减少资源占用
		if (_kbhit()) {//如果有按键按下,则_kbhit()函数返回真
			int ch = _getch();//使用_getch()函数获取按下的键值
			if (ch == 27) { break; }//按下ESC结束.
		}
	}
	system("pause");
	return 0;
}

下面我简单的简单的介绍一下API的整体运作过程:

 

       假设有一天你要去买一杯奶茶,这个奶茶店是上图这个样子,它拥有一个点餐口和一个出餐口,如果你要买一杯奶茶那么你就需要去点餐口告诉店员你需要什么样的奶茶,然后店员会根据你的需求去将你的奶茶做好,你只需要去出餐口去等待你的奶茶即可。明白了这个例子我们对于API的整个过程就很好理解了,此时你所写的程序就是你这个程序的中的客户而奶茶店就是我们的系统;这两个窗口就是系统所提供的API,我们需要听过窗口选择我们需要的奶茶即可不需要我们自己去制作奶茶,这样能够偶有效的保护系统内部的安全。例如上面那个程序,我们的目的是为了将鼠标移动到左上角(0,0位置),但是鼠标是属于系统内部的设备我们无法通过外部程序去移动他,所以系统给我们提供了一个接口函数即SetCursorPos(int X,int Y),我们通过这个函数就能够实现将鼠标移动到左上角的操作。此时将鼠标移动至左上角就是我们的“奶茶”,SetCursorPos(int X,int Y)函数就是我们点奶茶的这个过程。同样的在其他系统中的API原理于此大同小异此处不再进行过多讲解。
       怎么样这样一来对于API是不是很好理解了呢?

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值