- UID
- 872238
|
对于这种程序的编写,Windows CE的开发者因无法访问C++的(面向Windows CE的Visual C++ 目前还不支持意外情况处理,所以必须使用WIN32 API的意外情况处理宏。
为了应用WIN32意外情况处理,你将使用一套在WIN32 API 中被定义的宏。 下面一段代码显示其基本概念:
__try {
// The statements in here have a possibility of failure
// and so are guarded.
}
__finally {
// This is the exception handler. This code will execute
// after the guarded statements, no matter what happened
// in the guarded block of code above.
}
// This code will execute normally if the program flow allows
// it (no goto, exit, etc.)
|
__try 以及__finally 宏产生了使用意外情况句柄的所必要的底层代码。
意外情况的处理对诸如在嵌入式的应用程序中的那些普通的多线程序是有用的。WIN32结构化意外情况处理宏 是一种容易并且强大的保护应用程序使之免受未预料到的失败的方法。
临近尾声的重点:设备处理
有无数硬件设备(外围设备)与应用Windows的平台(Windows NT以及 Windows 95)台式机是兼容的,并且每一年都有更多的东西在市场上涌现。而Windows CE的平台,通常不支持台式计算机支持的设备的很多品种的外围硬件。 然而,为一嵌入式的的系统创造可靠的设备接口在嵌入式的程序设计的过程中,是比较富有挑战性的部分。 这部分地因为典型的嵌入式的系统接口的时序与其它可操作性的需要远比台式电脑计算系统和应用程序的更难。幸运的是,WIN32 API 提供了一套丰富的设备接口方法,使得设备接口程序写起来更容易并且更加适合于特定嵌入式的系统的需要。
WIN32 API是如何在你的硬件平台为你提供一套一致的基于流的设备接口的呢?。 为了使用设备,你首先利用适合于设备类型的函数打开它。 对于大多数设备,你利用的函数是在下列例子中的CreateFile 函数:
HANDLE hPort = CreateFile("COM1"); // Open the serial port
CreateFile函数打开规定的设备(串口)并且返回用于以后在该种设备上的操作(例如读和写)的句柄。 各种各样函数的(包括ReadFile ,WriteFile ,LockFile 和其他)接受这个句柄为参数,并且允许你(例如)读写数据,检查设备状态,并且将从其它程序的存取被锁住的设备或者文件列入清单。 文件输入输出操作被处理成与其它设备类型利用同样的API 函数,并且在文件之内包括随机的访问的函数。 被若干程序或线索同时访问的设备和文件可以分区域地利用LockFile 函数锁定。
在你的应用程序已完成设备或者文件之后,它将调用CloseFile 函数关闭设备,并且进行必要的清除设备的工作。 |
|