C++资源文件初使用[C++菜鸟]
起因
项目中需要可能变动的一些映射关系,而且是封装成独立的库——一个dll文件。
思路:把excel文件导出成.csv文件,当作资源加载到项目里,读取后拿到全部的字符,再分割处理。
添加资源
VS2013里添加资源 在所选项目上右键-添加-资源,弹出的窗口里选择-导入,添加我的.csv文件,资源类型是"csv",点击确定。
这时项目里 会有个 resource1.h 文件,里面有类似这样的代码:
#define IDR_CSV1 101
#define IDR_CSV2 102
这里,101 ,102 就是你添加的资源的id。
资源使用
//加载资源
string UseCustomResource(int rcId)
{
//定位自定义资源,如果是从本模块定位资源,也可将句柄简单地置为NULL即可
//HMODULE phexmodule = GetModuleHandle(L"PCommServerHandler.dll");
HMODULE phexmodule = LoadLibrary(L"PCommServerHandler.dll");
HRSRC hRsrc = FindResource(phexmodule, MAKEINTRESOURCE(rcId), TEXT("csv")); if (NULL == hRsrc)
return "rcError1";
//获取资源的大小
DWORD dwSize = SizeofResource(phexmodule, hRsrc);
if ( == dwSize)
return "rcError2";
//加载资源
HGLOBAL hGlobal = LoadResource(phexmodule, hRsrc);
if (NULL == hGlobal)
return "rcError3";
//锁定资源
LPVOID pBuffer = LockResource(hGlobal);
if (NULL == pBuffer)
return "rcError4"; string s=(char * &)pBuffer;// LPVOID ---> String
s=s.substr(,dwSize); //去除各种文件的附加信息。
return s;
}
加载资源,C++
调用就很简单一句:string fileTxt=UseCustomResource(101);
拿到的文本做进一步分割处理,加载到map里,就可以使用了,over。
读取excel
这里是一个.csv文件的读写,简单明了: http://blog.csdn.net/zhongjling/article/details/49818151
C++资源文件初使用[C++菜鸟]的更多相关文章
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- Hadoop集群上使用JNI,调用资源文件
hadoop是基于java的数据计算平台,引入第三方库,例如C语言实现的开发包将会大大增强数据分析的效率和能力. 通常在是用一些工具的时候都要用到一些配置文件.资源文件等.接下来,借一个例子来说明ha ...
- web项目获取资源文件
首页 博客 学院 CSDN学院 下载 论坛 APP CSDN 问答 商城 活动 VIP会员 专题 招聘 ITeye GitChat GitChat 图文课 写博客 消息 1 评论 关注 点赞 回答 系 ...
- 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新
上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...
- ABP文档 - 嵌入的资源文件
文档目录 本节内容: 简介 创建嵌入的文件 暴露嵌入的文件 使用嵌入的文件 简介 一个web应用里,客户端包含javascript,css,xml等文件,这此文件被添加到一个web项目后,发布成独立的 ...
- Xamarin+Prism开发详解二:Xaml文件如何简单绑定Resources资源文件内容
我们知道在UWP里面有Resources文件xxx.resx,在Android里面有String.Xml文件等.那跨平台如何统一这些类别不一的资源文件以及Xaml设计文件如何绑定这些资源?应用支持多国 ...
- Android-Drawable、Bitmap、byte[]、资源文件相互转换
我们在Android的开发中,经常可以遇到图片的处理,当中,有很多是 Bitmap.Drawable.byte[]和资源文件它们直接相互转换. 今天就此总结一下: 1.资源文件转为Drawable 2 ...
- Spring 资源文件处理
Java中,不同来源的资源抽象成URL,通过注册不同的handler(URLStreamHandler)来处理不同来源的资源的读取逻辑.一般handler的类型使用不同的前缀(协议,protocal) ...
- ABP理论学习之内嵌资源文件
返回总目录 本篇目录 介绍 创建内嵌文件 暴露内嵌文件 使用内嵌文件 介绍 在一个web应用中,有供客户端使用的javascript,css,xml等文件.它们一般是作为分离的文件被添加到web项目中 ...
随机推荐
- mysql性能检查脚本-部分
#!/bin/sh #ocpyang@126.com export black='\033[0m' export boldblack='\033[1;0m' export red='\033[31m' ...
- Laravel 5系列教程二:路由,视图,控制器工作流程
免费视频教程地址https://laravist.com/series/laravel-5-basic 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就要进入Laravel ...
- php中将SimpleXMLElement Object数组转化为普通数组
做微信开发,鉴于微信POST的消息是XML数据包,通过SimpleXMLElement Object获取的数据不好操作,需要转化为普通数组. 网上找了很多方法都不理想,发现通过json_decode和 ...
- websocket 和 socket.io 之间的区别
socket.io封装了websocket,同时包含了其它的连接方式,比如Ajax.原因在于不是所有的浏览器都支持websocket,通过socket.io的封装,你不用关心里面用了什么连接方式.你在 ...
- Python——Baseequestandler class (Interesting found in python‘s document)
class BaseHTTPRequestHandler(socketserver.StreamRequestHandler) HTTP request handler base class. | ...
- grid 布局 属性示例
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- Genymotion 在win10 下的安装
首先我在Genymotion官网上并没有找到他的安装程序.据说是在注冊后,通过邮件里的链接下载,结果也没有看到.最后详细在哪下的,忘了收藏.我下的是 genymotion-2.5.3-vbox.exe ...
- (四)Maven构建多模块项目
在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层).dao(数据库访问层).service(业务逻辑层).web(表现层),这样分层之 ...
- mongodb or and 条件拼凑 Query.And Query.Or
查询 1月 7月 8月 的数据 list - [0] { "$or" : [{ "JobDate" : { "$gte" : ISODate ...
- 由"永恒之蓝"病毒而来的电脑知识科普
永恒之蓝病毒事件: 继英国医院被攻击,随后在刚刚过去的5月12日晚上20点左右肆虐中国高校的WannaCry勒索事件,全国各地的高校学生纷纷反映,自己的电脑遭到病毒的攻击,文档被加密,壁纸遭到篡改,并 ...