第八章Windows文件编程解析.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通用对话框及其使用 打开和保存文件对话框 通用对话框 打开文件对话框函数: BOOL GetOpenFileName(LPOPENFILENAME lpofn); 保存文件对话框函数: BOOLGetSaveFileName(LPOPENFILENAME lpofn); lpofn指向OPENFILENAME结构: typedef struct tagOFN{ DWORD lStructSize; // 结构长度 … } OPENFILENAME, *LPOPENFILENAME; 注意lpstrFilter的使用: file.lpstrFilter = “Text Files(*.txt)\0*.txt\0All Files\0*.*\0\0”; //默认选第一个 file.nFilterIndex =1 通用对话框 浏览目录对话框函数: BOOL SHBrowseForFolder(LPBROWSEINFO lpbi); lpbi指向包含对话框初始数据的BROWSEINFO结构 typedef struct _browseinfo{ HWND hwndOwner, // 对话框的父窗口 … UNIT ulFlags, // 标志 … }BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO; 为了使用方便,封装一个CDirDialog类来管理浏览目录对话框(见07CommDlg程序) 注册表的使用 HEKY_USERS: 定义了所有用户信息,其中部分分支将映射到HEKY_CURRENT_USER关键字中,它的大部分设置都可以通过控制面板来修改. HEKY_CURRENT_CONFIG: 定义了计算机得当前配置,如显示器,打印机的信息,它实际上也是指向HEKY_LOCAL_MACHINE\CONFIG结构中某个分之的指针. HEKY_DYN_DATA: 定义了系统运行中的动态数据,即以发生的事件的有关信息(Win 98/me 以前版本) HKEY_PERFORMANCE_DATA: 在Windows NT/2000/XP注册表中虽然没有HKEY_DYN_DATA键,但是它却隐藏了一个名为“HKEY_ PERFOR MANCE_DATA”键。所有系统中的动态信息都是存放在此子键中。系统自带的注册表编辑器无法看到此键,但可以用专门的程序来查看此键,比如使用性能监视器。 * 实例见第八章Word文档: 内存映射文件应用举例 第八章 文件操作和内存映射文件 电子科技大学软件学院--杨尚明 * 第八章 文件操作和内存映射文件 电子科技大学软件学院--杨尚明 * 卷标就是打开我的电脑,看到的C盘D盘的名字。比如本地磁盘(c:),本地磁盘就是C盘的卷标。用dos命令label或者vol可以看到英文卷标,中文卷标用该命令看不到。 下面是转的一篇使用这个接口的博文 DWORD SetFilePointer( ? HANDLE hFile, ? LONG lDistanceToMove, ? PLONG lpDistanceToMoveHigh, ? DWORD dwMoveMethod ); 文中对于第二个和第三个参数进行了详细的说明: lpDistanceToMoveHigh 参数是用来管理大文件,如果要移到文件中任何位置,我们就必须设置这个参数的值。假如我们传入NULL值,那么lDistanceToMove 的最大值是2^31–2(2G-2),因为所有文件指针的值是有符号的。因此,就算文件只有很少的机会能够达到这个大小,我们最好还是把文件当成是一个大文件,并且在程序中使用64位的指针(就是lpDistanceToMoveHigh的值不是NULL)。如果我们有一个压缩的并且文件很少的NTFS文件系统中,即使当前盘的空间不是很大的情况下,也很可能会有一些大文件。 假如lpDistanceToMoveHigh传入的不是NULL,那么lpDistanceToMoveHigh和lDistanceToMove会组成一个有符号的64位值。lDistanceToMove参数是被作为这个值的低32们,lpDistanceToMoveHigh作为高32位,也就是说lpDistanceToMoveHigh是lDistanceToMove的符号扩展名。 为了从0移动到2G位置,lpDistanceToMoveHigh必须设置为NULL或当作lDistanceT

文档评论(0)

挑战不可能 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档