假设:
- 资源类型为“TEXT”
- 资源 ID 是 MY_RESOURCE_ID(这将是您的 resource.h 中的常量)
- 您已将 EXE 或 DLL(无论哪个包含资源)的 hInstance 存储到 m_hInstance 中。
将资源加载到内存中并获取指向它的指针是这样完成的:
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
}
}
}
}
注意:在 32 位或 64 位版本的 Windows 上,您不必卸载或解锁资源,并且如果您再次获得该资源,您将不会泄漏内存;你总是得到相同的记忆。
有关更新资源,请参阅更新 MSDN中的资源。