C++资源文件初使用[C++菜鸟]
2016-12-02 17:32
429 查看
起因
项目中需要可能变动的一些映射关系,而且是封装成独立的库——一个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 (0 == 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(0,dwSize); //去除各种文件的附加信息。 return s; }
加载资源,C++
调用就很简单一句:string fileTxt=UseCustomResource(101);
拿到的文本做进一步分割处理,加载到map里,就可以使用了,over。
读取excel
这里是一个.csv文件的读写,简单明了: http://blog.csdn.net/zhongjling/article/details/49818151相关文章推荐
- C语言/C++文件的读取与写入操作
- C语言小程序死机
- illegal use of this type as an expression see declaration of 'STACK'
- c 语言宏定义 #define 的理解与资料整理
- C语言自动关机小程序300s
- c++ 私有继承
- C语言趣味编程100例——数制转换
- CloseHandle
- VS2008下解决release版的工程在使用CSocket 调用create函数时出错的bug
- 部分和问题(入门题)(c++与c)(简单搜索)
- c语言函数练习
- Google C++单元测试框架GoogleTest---AdvancedGuide(译文)下
- C++ 继承中的内存布局
- 初始化(C++primer5th学习笔记)
- 堆排序以及归并排序的理解
- C++/CLI与C#常用语法对比
- c语言实现增删双向链表
- 【Todo】C++类 & 通用面试题分析记录 & 最难的bug
- Android项目JNI层C/C++文件中添加LOG信息
- C++ 实现 get set