zoukankan      html  css  js  c++  java
  • 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 (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

  • 相关阅读:
    大数据集群迁移的那一夜是怎么过的
    什么是Lambda架构
    从0到1搭建自助分析平台
    业务重要?还是技术重要?
    如何从0到1搭建大数据平台
    从0到1搭建大数据平台之数据采集系统
    高频面试题:秒杀场景设计
    面试官:面对千万级、亿级流量怎么处理?
    来自朋友最近阿里、腾讯、美团等P7岗位面试题
    《我想进大厂》之JVM夺命连环10问
  • 原文地址:https://www.cnblogs.com/dacude/p/6126611.html
Copyright © 2011-2022 走看看