First define two full-bureau functions:
Static AFX_EXTENSION_MODULE EXTENSIONDLL;
Int resource_counter = 0;
Hinstance Save_HINSTANCE = NULL;
Void get_dll_resource (void)
{
/ * this function change the resource handle to what of the dll * /
// This function changes the resource handle to point to the DLL
IF (resource_counter == 0)
{
Save_HINSTANCE = AFXGETRESOURCEHANDLE ();
AFXSetResourceHandle (Extensiondll.hmodule);
}
Resource_counter ;
}
/ / Then you need other functions to restore the resource handle
Void reset_dll_resource (void)
{
/ * this function restore the resource handle set by
'get_dll_resource ()' * /
IF (resource_counter> 0)
Resource_counter--;
IF (resource_counter == 0)
AFXSetResourceHandle (Save_HINSTANCE);
}
Call GET_DLL_RESOURCE () before getting resources, call reset_dll_resource after obtaining resources ()
as follows:
GET_DLL_RESOURCE ();
CDLGADD DLG;
DLG.PTREE = & m_treeaddr;
Dlg.m_strname = struse;
IRET = DLG.DOMODAL ();
RESET_DLL_RESOURCE ();