码迷,mamicode.com
首页 > Windows程序 > 详细

文件操作 - Windows资源文件的读取

时间:2016-04-29 08:13:30      阅读:350      评论:0      收藏:0      [点我收藏+]

标签:

=============== Windows资源文件的读取 ===============

Windows资源操作函数 12 LoadAccelerators  加载快捷键资源
14 LoadBitmap      加载位图资源
16 LoadCursor     加载光标资源
18 LoadIcon       加载图标资源
20 LoadMenu       加载菜单资源
22 LoadString     加载字符串资源
Windows资源操作函数 29 FindResource    从指定模块中加载指定名称、类型的资源
31 SizeofResource  获取资源数据的长度
33 LoadResource   加载指定的资源至内存
35 LockResource   锁定指定的资源,并返回指向资源数据的指针
37 FreeResource   释放指定的资源
39 我们通常加载某个资源的步骤如下所示: 41 使用LoadLibrary()加载模块,或者获取当前应用程序的模块。
43 调用FindResource()从指定模块中查找指定的资源,返回该资源的句柄。 45 调用SizeofResource ()获取资源数据的长度。 47 调用LoadResource()将资源加载至内存。 49 调用LockResource()锁定资源,并返回指向资源数据的指针。 51 通过数据指针操作数据。 53 使用完毕,调用FreeResource()释放指定的资源。
57 如下例程序演示了如何在当前程序中添加一个Word资源,并在运行时读取它,请读者仔细体验。 58 59 选择【Win32】→【Win32项目】→【控制台程序】命令,创建ResLoader。 60 61 打开资源视图,导入一个Word文档,资源类型定义为"WORD",资源名为IDR_WORD1,如图6-22所示。 62 64 (点击查看大图)图6-22 将一个Word文件当做资源导入 65 编写主程序如下: 66 67 【程序 6-6】从资源中加载自定义数据 68 69 01 #include "stdafx.h" 70 02 #include "ResLoader.h" 71 03 72 04 CWinApp theApp; 73 05 74 06 int _tmain() 75 07 { 76 08 int nRetCode = 0; 77 09 78 10 if (!AfxWinInit(::GetModuleHandle(NULL),NULL, ::GetCommandLine(), 0)) 80 11 { 81 12 _tprintf(_T("错误: MFC 初始化失败\n")); 82 13 nRetCode = 1; 83 14 } 84 15 else 85 16 { 86 17 HRSRC hRes = FindResource(theApp.m_hInstance, MAKEINTRESOURCE(IDR_WORD1), _T("WORD")); 88 18 //获取长度 89 19 DWORD len = SizeofResource(theApp.m_hInstance, hRes); 90 20 HGLOBAL hg = LoadResource(theApp.m_hInstance, hRes); 91 21 LPVOID lp = (LPSTR)LockResource(hg); 92 22 93 23 //将资源中的内容保存至某个Word文件中 94 24 CFile file; 95 25 file.Open(_T("out.doc"), CFile::modeWrite | CFile::modeCreate); 98 27 char * cp = (char *)lp; 99 28 for(int i = 0; i < len; i++) 100 29 { 101 30 file.Write(cp++, 1); 102 31 } 103 32 104 33 CString filePath = file.GetFilePath(); 105 34 file.Close(); 106 35 107 36 //打开该文件 108 37 ShellExecute(NULL,_T("open"),filePath, NULL, NULL, SW_SHOW); 110 38 FreeResource(hg); 111 39 } 112 40 113 41 return nRetCode;
  42 }
114 程序运行时,会自动在当前目录下生成一个out.doc文件,并自动启动Word打开它,如图6-23所示。 117 (点击查看大图)图6-23 运行结果 118 提示 119 120 注意ShellExecute()函数的使用,它用以执行一条系统命令,如打开某个文件。 121 122 光盘导读 123 124 该项目对应于光盘中的目录"\ch06\ResLoader"

原文地址:http://book.51cto.com/art/200908/145793.htm

文件操作 - Windows资源文件的读取

标签:

原文地址:http://www.cnblogs.com/DuanLaoYe/p/5444981.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!