C++如何调用或使用资源文件

我在C++里创建了一个资源文件“ziy.rc”,里面的TEMP类的IDR_TEMP2资源,怎么在代码里使用这个资源?比如在控制台输出这个资源、写文件写出这个资源等等以下是... 我在C++里创建了一个资源文件“ziy.rc”,里面的TEMP类的IDR_TEMP2资源,怎么在代码里使用这个资源?比如在控制台输出这个资源、写文件写出这个资源等等
以下是资源视图:
展开
 我来答
赤水云
推荐于2017-09-10 · TA获得超过5029个赞
知道大有可为答主
回答量:2362
采纳率:86%
帮助的人:897万
展开全部
1.把exe文件添加进资源文件。

2.读取这个资源并输出。
3.验证exe文件是否输出成功。
………………
主要就是第二步难。我按照此处的做法需要添加以下头文件:winbase.h,afx.h,afxdlgs.h方可编译成功,但是运行时连接不成功。

以下函数可以实现从资源文件中读出文件并写到指定的文件, MyType 资源类型 ITEMID 资源ID
至于路径可以用GetTempPath获取临时文件夹

BOOL UseCustomResource()
{
//定位我们的自定资源,这里因为我们是从本模块定位资源,所以将句柄简单地置为NULL即可
HRSRC hRsrc = Findresource(null, MAKEINTRESOURCE(ITEMID), TEXT("MyType"));
if (NULL == hRsrc)
return FALSE;
//获取资源的大小
DWORD dwSize = SizeofResource(NULL, hRsrc);
if (0 == dwSize)
return FALSE;
//加载资源
HGLOBAL hGlobal = LoadResource(NULL, hRsrc);
if (NULL == hGlobal)
return FALSE;
//锁定资源
LPVOID pBuffer = LockResource(hGlobal);
if (NULL == pBuffer)
return FALSE;

//我们用刚才得到的pBuffer和dwSize来做一些需要的事情。可以直接在内存中使
//用,也可以写入到硬盘文件。这里我们简单的写入到硬盘文件,如果我们的自定
//义资源是作为嵌入DLL来应用,情况可能要复杂一些。
BOOL bRt = FALSE;
FILE* fp = _tfopen(_T("demo.exe"), _T("wb"));
if (fp != NULL)
{
if (dwSize == fwrite(pBuffer, sizeof(char), dwSize, fp))
bRt = TRUE;
fclose(fp);
}

//FreeResource(hGlobal);
return bRt;
}
空雪梦见
2013-08-21 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1172万
展开全部
首先加载资源:
HMODULE hExe = GetModuleHandle(0);
HRSRC hRes = FindReousrce(hExe , MAKEINTRESOURCE(IDR_TEMP2), TEXT("TEMP"));
HGLOBAL hgRes = LoadResource(hExe, hRes);

然后拿到指向资源数据的指针和资源数据的大小
DWORD nResSize = SizeOfResource(hExe, hRes);
LPVOID pRes = LockResource(hgRes);
更多追问追答
追问
这些代码需要什么头文件吗?还有,【 FindReousrce】应该是【FindResource】~
追答
windows.h

手残打错了(……
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
感冒九十九
2013-08-21 · TA获得超过113个赞
知道小有建树答主
回答量:260
采纳率:0%
帮助的人:99.8万
展开全部
.rc是窗口程序所用的资源,比如菜单,图标,位图,工具栏,字符串等资源都包含在这.rc的文件里面
更多追问追答
追问
是啊,怎么调用此文件?
追答
学过 windows编程 或者其类库 MFC吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郁闷两天的鱼
2013-08-21 · TA获得超过1052个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:186万
展开全部
LoadResource
追问
能详细点吗?我知道你是大牛...一般大牛的回答都是最简洁的,可是你叫我们这些新手情何以堪啊= =
追答
字符串一般使用 LoadString
如果有image 可能使用到 LoadFromResource
不懂就搜索这两个函数的用法!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式