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

僤鯓⒐⒋嵵緔 提交于 2019-11-30 05:11:23

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!