资源文件读取_文件_VC技术文章_VC源动力
来源:互联网 发布:mac装双系统分区 编辑:程序博客网 时间:2024/06/10 05:53
导读:
//
// 从资源中读取数据
//
LONG GetDataFromRes(PBYTE pData,UINT nIDResource)
{
// 将资源ID转成资源名称
LPSTR szResourceName = MAKEINTRESOURCE(LOWORD(nIDResource));
// 资源的类型
LPSTR szResourceType = "BIN_DATA";
// 查找资源句柄
HRSRC hRes = FindResource(NULL, szResourceName,szResourceType);
// 获得资源数据的句柄
HGLOBAL hResData;
if (!hRes || !(hResData = LoadResource(NULL,hRes)))
{
return -1;
};
// 资源数据的大小
DWORD dwSize = SizeofResource(NULL,hRes);
if(pData == NULL)
{
return dwSize;
}
// 资源加锁
PBYTE pSrc = (PBYTE)LockResource(hResData);
if (!pSrc)
{
FreeResource(hResData);
return -1;
};
// 复制数据
CopyMemory(pData,pSrc,dwSize);
// 释放资源
FreeResource(hResData);
return dwSize;
}
//
// DUMP生成文件
//
BOOL MakeFileFromData(PBYTE pData,LONG lSize,LPCSTR lpszFilePath)
{
if(pData == NULL || lpszFilePath == NULL || lpszFilePath[0] == '/0')
return FALSE;
HANDLE hFile = CreateFile(
lpszFilePath,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_HIDDEN,
NULL
);
if(hFile == INVALID_HANDLE_VALUE)
{
return FALSE;
}
DWORD dwWrited = 0;
BOOL bRet = WriteFile(hFile,pData,lSize,&dwWrited,NULL);
CloseHandle(hFile);
return bRet;
}
本文转自
http://www.xiaozhou.net/ReadNews.asp?NewsID=225
有时我们会在资源里加上一些文件,BMP、ICON、WAVE等文件读取时没什么问题,
主要的区别在于RT_TOOLBAR,RT_MENU,RT_...
HINSTANCE hInst = AfxFindResourceHandle(lpszResourceName, RT_TOOLBAR);
HRSRC hRsrc = ::FindResource(hInst, lpszResourceName, RT_TOOLBAR);
if (hRsrc == NULL)
return FALSE;
HGLOBAL hGlobal = LoadResource(hInst, hRsrc);
if (hGlobal == NULL)
return FALSE;
CToolBarData* pData = (CToolBarData*)LockResource(hGlobal);
//
// 从资源中读取数据
//
LONG GetDataFromRes(PBYTE pData,UINT nIDResource)
{
// 将资源ID转成资源名称
LPSTR szResourceName = MAKEINTRESOURCE(LOWORD(nIDResource));
// 资源的类型
LPSTR szResourceType = "BIN_DATA";
// 查找资源句柄
HRSRC hRes = FindResource(NULL, szResourceName,szResourceType);
// 获得资源数据的句柄
HGLOBAL hResData;
if (!hRes || !(hResData = LoadResource(NULL,hRes)))
{
return -1;
};
// 资源数据的大小
DWORD dwSize = SizeofResource(NULL,hRes);
if(pData == NULL)
{
return dwSize;
}
// 资源加锁
PBYTE pSrc = (PBYTE)LockResource(hResData);
if (!pSrc)
{
FreeResource(hResData);
return -1;
};
// 复制数据
CopyMemory(pData,pSrc,dwSize);
// 释放资源
FreeResource(hResData);
return dwSize;
}
//
// DUMP生成文件
//
BOOL MakeFileFromData(PBYTE pData,LONG lSize,LPCSTR lpszFilePath)
{
if(pData == NULL || lpszFilePath == NULL || lpszFilePath[0] == '/0')
return FALSE;
HANDLE hFile = CreateFile(
lpszFilePath,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_HIDDEN,
NULL
);
if(hFile == INVALID_HANDLE_VALUE)
{
return FALSE;
}
DWORD dwWrited = 0;
BOOL bRet = WriteFile(hFile,pData,lSize,&dwWrited,NULL);
CloseHandle(hFile);
return bRet;
}
本文转自
http://www.xiaozhou.net/ReadNews.asp?NewsID=225
- 资源文件读取_文件_VC技术文章_VC源动力
- VC++动态链接库((DLL)编程深入浅出((一)_DLL编程_VC技术文章_VC源动力
- 编程_VC++_txt文件操作实例
- 在VC中实现FTP功能_网络/通信_VC技术文章
- 资源文件读取_文件
- 绘制旋转七彩动画_VC源码_易语言源码
- 读书笔记(一)_VC++深入详解
- [转]为CSocket配置Time-Out功能_VC文摘_开发文摘_软件开发_天新网
- S7-200的PPI通信协议_VC代码
- 读取URL资源文件
- 读取资源文件
- 读取文件资源
- 读取资源文件
- 读取资源文件
- getResourceAsStream 读取资源文件
- struts2 读取资源文件
- c#读取资源文件
- java读取资源文件
- VB 窗体的任何部分皆可拖动窗体
- 实用:最经济的美容偏方大汇集
- 回发或回调参数无效
- 有道的一道笔试题及其解答——打印双螺旋矩阵
- 网页视觉设计基本技巧
- 资源文件读取_文件_VC技术文章_VC源动力
- join
- 考研
- IE和FireFox的div高度自适应方法
- 全球网友捍卫中国版图:地图纠察队追查四大错误
- 边玩游戏边学英语单词.
- 遇到FireFox离线模式(work offline)问题
- [护肤] 去皱汇总+19个民间小偏方
- 开始写博