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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM