资源怎么使用:6 如何使用文本文件资源

1427 人浏览 | 时间: 2015-06-24 22:28:45 | 作者: codexia

HRSRC  hData = FindResource(NULL,MAKEINTRESOURCE(IDR_TXT),_T("txt"));// - 获取资源
HGLOBAL hRes = LoadResource(NULL,hData);  // - 加载资源到内存
LPVOID pData = LockResource(hRes);// - 获取资源的内存指针
int iResSize = SizeofResource(NULL,hData);// - 获取资源大小

CStringA str;// - 声明窄字符串,用来存储资源数据,因为txt文件时ANSI编码的,因此是窄字符的,所以用窄字符串接收。
memcpy(str.GetBuffer(iResSize),pData,iResSize);// - 复制内存数据到缓冲
str.ReleaseBuffer(iResSize);// - 释放缓冲
CStringW msg(str);// - 将窄字符串转换成
MessageBox(msg);  // - 消息框显示


    资源使用原理,请阅读《资源怎么使用:自定义资源使用原理介绍》。

    代码解释:
    FindResource函数,第一个参数设置为NULL,表示为程序自己。如果是直接在自己的资源中加载,设置为空即可。第二个参数是资源的名称字符串,这时我们需要按照字符串。一般使用的是ID宏,此宏代表一个数字,并不是字符串。所以此处需要将数字ID转换成资源名称字符串,这就是MAKEINTRESOURCE宏的作用,传入ID,返回的就是字符串名称。如果想直接使用名字,则给资源ID命名时,在资源的属性中的ID中,使用英文字符双引号修改ID即可。见下图。
    命名完后,在资源视图可以看到资源的id是字符串形式的了。见下图:

    此时就可以直接传入这个字符串,而不需要MAKEINTRESOURCE了。
    代码类似于:

HRSRC  hData = FindResource(NULL,L"id",_T("txt"));// - 获取资源

  &nb

请微信扫码阅读。
为防止恶意爬虫,
已开启反爬机制,
理解哟~~~~
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 0