WINDOWS编程

1. Windows API 是什么?根据其完成的功能可分为几种类型。

API 是 Application Programming Interface 的缩写,
即Windows API 是 windows 应用程序编程接口。
根据其完成的功能,可分为七类:
1.基础服务,提供对Windows系统可用的基础资源的访问接口。
如:文件系统、外部设备、进程、线程、访问注册表、错误处理机制。
2.图形设备接口,提供功能为:
输出图形内容到显示器、打印机以及其他外部输出设备。
3.图形化用户界面,提供的功能有创建和管理屏幕和大多数基本控件,比如
按钮和滚动条。接收鼠标和键盘输入,以及其他与GUI有关的功能。
4.通用对话框链接库,为应用程序提供标准对话框,比如
打开/保存文档对话框、颜色对话框和字体对话框等等。
5.通用控件链接库,为应用程序提供接口来访问操作系统提供的一些高级控件。
比如状态栏、进度条、工具栏和标签。
6.Windows外壳,允许应用程序访问Windows外壳提供的功能,并对其有所改进和增强。
7.网络服务,为访问操作系统提供的多种网络功能提供接口。


2. 什么是句柄?句柄有哪些作用。

句柄是一个4字节长的数值,Windows用来标识被应用程序所建立或使用的对象的唯一整数。
常用的如HANDLE(通用句柄),HINSTANCE(实例句柄),
HBITMAP(位图句柄),HDC(设备描述表句柄),HICON(图标句柄),
Windows使用各种各样的句柄标识诸如应用程序实例,窗口,控件,位图,GDI对象等。


3. Windows 编程中窗口的定义是什么?

窗口是Windows应用程序中的基本操作单元,是应用程序和用户之间交互的接口环境,也是系统管理应用程序的基本单位。
编写一个Windows应用程序首先应创建一个或多个窗口,随后应用程序的运行过程即是窗口内部、窗口与窗口之间、窗口与系统之间进行数据处理和数据交换的过程。


4. Windows系统提供的标准控件有哪些?

Windows系统提供的标准控件主要包括静态控件、按钮控件、编辑框控件、列表框控件、组合框控件等。


5. 什么是 Visual C++ API 工程?它由哪些类型的文件组成?

使用VC++操纵API的工程,由C语言源程序文件,头文件,模块定义文件,资源描述文件,项目文件构成。


6. Windows 编程中常用的消息有哪些?应用程序如何响应键盘消息?

窗口管理消息,初始化消息,输入消息,系统消息,剪贴板消息,控制处理消息,控制通知消息,滚动条通知消息,非用户区消息,MDI消息,DDE消息,
应用程序自定义的消息。
当用户按下或释放一个键时,键盘中的键盘中断处理程序对所击键进行编码,并调用Windows的用户模块USER.EXE中的有关程序来产生键盘消息,最终发送到应用程序的消息队列中去等待处理。


7. 什么是事件驱动的程序执行过程?简便描述Windows的事件驱动程序模型。

发生一个事件执行一段代码。

  1. 有一个事件(消息)队列;
  2. 鼠标按下时,往这个队列中增加一个点击事件(消息);
  3. 有个循环,不断从队列取出事件,根据不同的事件,调用不同的函数。
  4. 事件(消息)一般都各自保存各自的处理函数指针,这样,每个消息都有独立的处理函数;

8. IP地址和端口号在网络程序设计中有什么作用?

IP地址标识到网络主机,通过IP地址对应不同主机。端口号标识到主机中的应用进程,通过端口号将数据传输给不同的应用进程。


9. 什么是动态链接库,作用是什么?

动态链接库,是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式。
它可以使多个应用程序共享代码和数据,更加节省内存并减少页面交换,极大地提高了可维护性和可扩展性;适用于大规模的软件开发,使开发过程独立,耦合度小,便于不同开发者和开发组织之间进行开发和测试。


10. 在Windows API 程序设计中,资源的主要作用有哪些?

凡是运行程序要用到的数据就叫资源。Windows应用程序中资源是独立于代码的,使用单独的RESOURCE Compiler来进行编译,并嵌入到可执行文件中,增加了代码的可复用性。可以使用:加速键,位图,光标,对话框,菜单,工具条,字符串等。


11. 套接字(Socket)连接过程中要用到下列方法,试说明各方法的功能?哪些方法会发生阻塞?Shutdown()、Close()、Bind()、Listen()、Accept()、Send()、Receive()、Connect()。

  • Shutdown()
    不管引用计数关闭套接字函数,也可以选择性的关闭读或者写。
  • Close()
    终止网络连接,close把描述符的引用计数减1,当计数变为0的时候关闭套接字函数,同时终止读和写两个方向的数据传送。
  • Bind()
    用于将套接字与指定端口相连,适用于未连接的数据报或流类套接口绑定IP和端口地址。
  • Listen()
    使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程。
  • Accept()
    监听套接字的缓冲队列中没有已经到达的连接请求,则阻塞,当有连接请求到达时恢复。
  • Send()
    如果套接字缓冲区中仍有以前的数据未发送完成,并且该发送缓冲区的空闲空间不能容纳要发送的数据,则阻塞。直到套接字发送缓冲区有足够的空间。
  • Receive()
    套接字接受缓冲区无数据可读时,则阻塞,直到有数据可读。
  • Connect()
    连接请求发出去便阻塞,直到TCP/IP的三次握手过程成功结束,返回对客户端连接请求的确认。

你可能感兴趣的:(WINDOWS编程)