视窗操作系统应用程序接口(Windows API),有非正式的简称法为WinAPI,是微软对于Windows操作系统中可用的内核应用程序编程接口的称法。它设计为由C/C++程序调用,而且它也是应用软件与Windows系统最直接的交互方式。而大多数驱动程序所需要的对Windows系统的更底层次访问接口,由所用版本的Windows的Native API来提供接口。 Windows有一个软件开发包(SDK, software development kit)提供相应的文档和工具,以使程序员开发使用Windows API的软件和利用Windows技术。 历史 Windows API总会为程序员提供大量的构建不同Windows的底层结构,这有助于为Windows程序员开发应用程序提供大量的灵活性和功能。但是,它同样使Windows applications要负责处理大量底层且有时是繁琐的与图形用户界面(GUI)相关的操作。 Charles Petzold, 许多有关Windows API的畅销书的作者曾经说过:[1]“The original hello-world program in the Windows 1.0 SDK was a bit of a scandal. HELLO.C was about 150 lines long, and the HELLO.RC resource script had another 20 or so more lines. (...) Veteran C programmers often curled up in horror or laughter when encountering the Windows hello-world program.” —Charles Petzold, Programming Microsoft Windows with C# 常用的例子程序Hello world程序,通常是用来演示一个系统上最简单的程序(即打印一行"Hello World")。 这些年来,Windows操作系统已经今非昔比,而Windows API也随之改变和成长并反映出这种变化。Windows API的 Windows 1.0 版本只提供不到450个函数调用(Subroutine),而现在的版本提供了上千个。然而,整体而言,Windows接口保持了相当好的一致性,古老的Windows 1.0程序对习惯于现在版本Windows API的程序员也并不陌生。[2] Microsoft特别强调维持软件的向后兼容性。为了实现此一目标,有时微软甚至不惜支持使用了非官方乃至(编程上)非法的API的软件。Raymond Chen,一位致力于Windows API的Windows开发者,曾提及他:[3]“could probably write for months solely about bad things apps do and what we had to do to get them to work again (often in spite of themselves). Which is why I get particularly furious when people accuse Microsoft of maliciously breaking applications during OS upgrades. If any application failed to run on Windows 95, I took it as a personal failure.” —Raymond Chen, What about BOZOSLIVEHERE and TABTHETEXTOUTFORWIMPS?Windows API分类Windows API所提供的功能可以归为七类:[4] 基础服务(Base Services)[5],提供对Windows系统可用的基础资源的访问接口。比如象:文件系统(file system)、外部设备(device)、, 进程(process)、线程(thread)以及访问注册表(Windows registry)和错误处理机制(error handling)。这些功能接口位于,16位Windows下的kernel.exe、krnl286.exe或krnl386.exe系统文件中;以及32位Windows下的 kernel32.dll和advapi32.dll中。 图形设备接口(GDI)[6],提供功能为:输出图形内容到显示器、打印机以及其他外部输出设备。它位于16位Windows下的gdi.exe;以及32位Windows下的gdi32.dll。 图形化用户界面(GUI)[7],提供的功能有创建和管理屏幕和大多数基本控件(control),比如按钮和滚动条。接收鼠标和键盘输入,以及其他与GUI有关的功能。这些调用接口位于:16位Windows下的user.exe, 以及32位Windows下的user32.dll。从Windows XP版本之后, 基本控件和通用对话框控件(Common Control Library)的调用接口放在comctl32.dll中。 通用对话框链接库(Common Dialog Box Library)[8],为应用程序提供标准对话框,比如打开/保存文件对话框、颜色对画框和字体对话框等等。这个链接库位于:16位Windows下的commdlg.dll中,以及32位Windows下comdlg32.dll中。它被归类为User Interface API之下。 通用控件链接库(Common Control Library)[9],为应用程序提供接口来访问操作系统提供的一些高级控件。比如像:状态栏(status bar)、进度条(progress bars)、工具栏(toolbar)和标签(tab)。这个链接库位于:16位Windows下的commctrl.dll中,以及32位Windows下comctl32.dll中。. 它被归类为User Interface API之下。
温馨提示:内容为网友见解,仅供参考
windowsAPI是什么
API也就是Microsoft Windows 32位平台的应用程序编程接口。Windows这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外, 同时也是一个很大的服务中心,调用这个服务中心的各种服务,可以帮应用程式达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序,所以便称之为Applicati...
什么是WinAPI?
视窗操作系统应用程序接口(Windows API),有非正式的简称法为WinAPI,是微软对于Windows操作系统中可用的内核应用程序编程接口的称法。它设计为由C\/C++程序调用,而且它也是应用软件与Windows系统最直接的交互方式。而大多数驱动程序所需要的对Windows系统的更底层次访问接口,由所用版本的Windows的Native A...
WINAPI含义
WINAPI,全称为Windows API,指的是Windows操作系统提供的一系列函数接口。它主要用于实现程序与Windows操作系统的交互。在进行Windows编程时,API函数的调用方式通常遵循特定的规则,即调用约定。在Windows编程中,主要有三种调用约定:__stdcall、__cdecl和__pascal。默认情况下,函数调用遵循的是__stdcall规...
winmain函数声明的WINAPI是什么
只是一个叫法而已 WINAPI 意思是windows操作系统提供的用户应用程序接口函数
请教一个windowsAPI的问题.int WINAPI WinMain .中间这个 WINAPI是怎么...
WINAPI 表示WindowsAPI函数调用约定,在SDK中定义 define WINAPI __stdcall 也就是说定义了WINAPI 的函数采用__stdcall调用约定。
windows api什么意思?什么是API
描绘图形、使用周边设备…等目的,由於这些函数服务的对象是应用程式(application),所以便称之为 application programming interface,简称 api 函数。win32 api也就是microsoftwindows 32位平台的应用程序编程接口。凡是在 windows 工作环境底下执行的应用程式,都可以调用windows api。
为什么有些函数名前WINAPI
WINAPI是一个宏,所代表的符号是__stdcall, 函数名前加上这个符号表示这个函数的调用约定是标准调用约定,windows API函数采用这种调用约定。初学者用C语言写程序,一般不需要使用__stdcall
C++中的Winapi作用
win api 是windows操作系统的系统调用,在c++中可以写出windows上的应用程序。至于Java嵌入C++,你可以去搜搜Java C++混合编程。应该很容易找到。
C++中的Winapi作用
win api是系统开发的一套接口,通过这套API ,你可以用C++来进行很多系统操作比如说:创建一个进程后者结束个进程调用CreateProcess,TerminateProcess java中可以调用C++程序的,设置可以直接内嵌C++代码或者调用C++类库,毕竟现在单一编程很少了,更多的是多语言间的混合编程 在JAVA中使用C++用JIN技术,具体自己...
关于VC++的Winmain函数(WINAPI是什么?)
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow );在返回类型说明符int的后面,有一个函数说明符WINAPI。WINAPI是一个Windows定义的宏,将使系统以特定于Windows API函数的某种特殊方式处理函数名和实参。这种方式与C++通常处理函数的方式不同。具体的细节是不...