欢迎来到天天文库
浏览记录
ID:18614439
大小:73.00 KB
页数:8页
时间:2018-09-19
《windows编程考试终极复习资料2.0》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Win32应用程序编程接口(API)。1.3windows版本WindowsServer2003定位于企业和服务器应用。1.7准备win64Win32和Win64的本质差异是指针变量的大小(win64是64位)以及虚拟地址空间的大小。2.1windows文件系统Windows支持4种文件系统。1.NT文件系统(NTFS)。2.文件分配表(FAT&FAT32)。3.CD-ROM文件系统(CDFS)。4.通用磁盘格式(UDF)。只有NTFS支持安全性。2.2文件名目录和文件名不能包含任何ASCII字符在1-31之
2、间的字符或者以下字符:*?”“<>/目录和文件名称不区分大小写,但可以保留大小写。2.4.2main函数C的main函数及其参数列表(argv[]),应该被宏tmain所代替。2.11.2目录管理创建或者删除目录涉及到一对简单函数:BOOLCreateDirectory(LPCTSTRlpPathName,LPSECURITY_ATTRIBUTESlpSecurityAttributes)BOOLRemoveDirectory(LPCTSTRlpPathName)3.5文件属性和目录处理有可能在目录中查找满
3、足指定命名方式的文件和目录,同时获取文件属性。查找操作需要函数FindFirstFile获取的查找句柄,使用FindNextFile来获取指定的文件,以及使用FileClose终止查找。3.5.2获取文件和目录属性的其他方式FindFirstFile和FindNextFile函数可以获取一下文件属性信息:属性标记、三个时间戳和文件大小。3.5.3临时文件名该名称可用于任何指定的目录,而且必须是唯一的。3.9文件处理策略C库提供了一些不同的优点,包括如下:1)代码可以移植到非windows平台。2)便捷的面向行
4、和字符的函数,而windows中没有相对应的函数来化简字符串处理。3)C库函数通常比windows函数更易于使用。4)面向行和流字符的函数易于改变以进行普通调用,尽管失去了可移植性特定。5)C库可以在多线程环境下运行。C库也有一些限制。如下:1)C库不能管理或遍历目录,也不能获取或设置大多数文件属性。2)C库在fseek函数中使用32位的文件位置,所以在顺序读取巨大文件的同时,却不能根据需要定位巨大文件的任何地方。3)C库中没有高级特性,比如文件安全性、内存映射文件、文件锁、异步I/O和进程间通信。3.10文
5、件锁定文件锁可以是只读(共享)或读写(专有)。最重要的是锁属于进程。最普遍的函数是LockFileEx,其次是LockFile。在使用文件锁是应考虑以下因素:1)解锁应该同前面锁定使用完全相同的范围。2)锁不能跟文件现有的锁有重叠,否则会产生冲突。3)锁可以超出文件的长度范围,该方法在进程或线程扩展文件时有用。4)锁不能被新建的进程继承。3.11注册表注册表是关于程序和系统配置信息的集中的分层的数据库。对注册表的访问是通过注册关键字来实现的,他跟文件系统目录相似,关键字可以包含其他关键字或名称/值对,他跟文件
6、名称和内容是类似的。注册表名称/值对包含如下信息:1)操作系统版本号、编译号和注册用户。2)每个正确安装程序的相似信息。3)计算机处理器类型、处理器数量、系统内存等等信息。4)用户特定信息,比如主目录和程序选项。5)安全信息,比如用户账号。6)从文件扩展名刀可执行程序的映射。这些映射在用户点击文件名图标时通过用户界面shell使用。例如.doc扩展名映射到微软的word程序。7)映射网络地址到主机名。4.3错误和异常*错误可以被当做一个可知位置偶然发生的事件,例如系统调用错误应该能被代码段中的逻辑立即检测和汇
7、报。这样,程序一般包含明确的测试逻辑以判断文件读取操作是否有误,第二章采用ReportError函数来诊断并响应错误。另一方面,异常可能会在任何地方发生,而要对异常进行测试是不可能或不现实的。例如除以零和内存访问违规就是实际例子。虽然如此,但是两者的区别有时是模糊的。Windows可以在内存分配过程中使用HeapAlloc函数产生异常,二档内存不足时使用HeapCreat函数。程序可以通过使用RaiseException函数的程序员定义的异常代码来引起异常。异常处理器提供了不使用goto或longjmp移交控
8、制权,从而程序控制下的内部程序块或函数中推出的一个便利机制。当程序块访问资源,比如打开文件,内存或同步对像时,这种能力尤其重要,因为处理器可以释放他们,也有可能在异常处理器之后继续程序执行而不是终止程序,另外,当程序块中断退出时,程序可以恢复系统状态,比如浮点掩码。用户定义异常:RaiseException函数:VIODRaiseException(DWORDdwExceptionCode,DWOR
此文档下载收益归作者所有