源代码.cpp
#include "SwitchResource.h"
extern HINSTANCE g_hDllResInstance;
CSwitchResource::CSwitchResource()
{
m_hSaveResInstance = AfxGetResourceHandle();
AfxSetResourceHandle(g_hDllResInstance);
}
CSwitchResource::~CSwitchResource(void)
{
AfxSetResourceHandle(m_hSaveResInstance);
}
HINSTANCE CSwitchResource::GetDllResourceIns()
{
return g_hDllResInstance;
}
头文件.h
#pragma once
// 使用说明:
// 需要在dll的入口处添加g_hDllResInstance的定义,形如在DllMain中添加
// HINSTANCE g_hDllResInstance = NULL;
// DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
// {
// g_hDllResInstance = hInstance;
// ...
// }
class CSwitchResource
{
public:
CSwitchResource();
virtual ~CSwitchResource(void);
static HINSTANCE GetDllResourceIns();
private:
HINSTANCE m_hSaveResInstance;
};
使用实例:在winapp的单实例初始化函数加入资源定义
// 唯一的一个 CTestWinApptheApp对象
CTestWinApptheApp;
// CTestWinApptheApp初始化
HINSTANCE g_hDllResInstance = NULL;
BOOL CTestWinApptheApp::InitInstance()
{
CWinApp::InitInstance();
g_hDllResInstance = theApp.m_hInstance;
return TRUE;
}