How to load text file from Resources in VC++?

前端 未结 1 490
不知归路
不知归路 2020-12-29 11:51

I\'m writing a DLL in VC++ and I need to use external text file. I have something like this right now:

 ifstream file;
 string line;

 file.open(\"C:\\\\User         


        
相关标签:
1条回答
  • 2020-12-29 12:19

    Assumptions:

    • The resource type is "TEXT"
    • The resource ID is MY_RESOURCE_ID (this would be a constant from your resource.h)
    • You have stored the hInstance for your EXE or DLL (whichever contains the resource) into m_hInstance.

    Loading a resource into memory and getting a pointer to it is done like this:

    HRSRC hResource = FindResource(m_hInstance, MAKEINTRESOURCE(MY_RESOURCE_ID), L"TEXT");
    
    if (hResource)
    {
        HGLOBAL hLoadedResource = LoadResource(m_hInstance, hResource);
    
        if (hLoadedResource)
        {
            LPVOID pLockedResource = LockResource(hLoadedResource);
    
            if (pLockedResource)
            {
                DWORD dwResourceSize = SizeofResource(m_hInstance, hResource);
    
                if (0 != dwResourceSize)
                {
                     // Use pLockedResource and dwResourceSize however you want
                }
            }
        }
    }
    

    Note: You do not have to unload or unlock the resource on 32-bit or 64-bit vesions of Windows, and if you obtain the resource again you will not leak memory; you always get the same piece of memory.

    For updating a resource, see Updating Resources in MSDN.

    0 讨论(0)
提交回复
热议问题