Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS General Discussion » What is "RDE" Collapse All
Subject Author Date
w t Jul 17, 2006 - 8:28 AM

I am a new user of prof-uis, I just downloaded the freeware version of prof-uis.When I try to compile the solution, I found that there are many build configurations, some of them ended with "RDE", such like "Static Unicode Release RDE", my question is: what is "RDE", is it an abbr of a term? thanks for any attention.

Technical Support Jul 17, 2006 - 12:08 PM

RDE stands for regular DLL extension.

Prof-UIS is an MFC extension library. It extends MFC projects of two types:

1) EXE projects. Non-RDE configurations should be used in this case.

2) Regular DLL projects such as MFC ActiveX projects or MFC based DLLs created as regular. The RDE configurations should be used in this case and your regular MFC DLL or ActiveX project should have the __PROF_UIS_FOR_REGULAR_DLL symbol defined in the preprocessor settings.

Unfortunately it is not possible to create one MFC extension DLL which is used in both project types. This is limited by the MFC design itself. Besides when using a Prof-UIS RDE configuration in your MFC based regular DLL or Active X project, you should invoke the following code in the InitInstance() virtual method of the CWinApp-derived class:

    CExt_ProfUIS_ModuleState::InitExtension(
        AfxGetStaticModuleState()
        );
This kind of initialization is needed by any MFC extension library built for using in regular DLL/ActiveX projects. It is not difficult to explain why this initialization call is needed. If an MFC extension DLL extends some features of an EXE module, it is possible to get the module handle of this EXE (just use ::GetModuleHandle(NULL) and find the AFX_MODULE_STATE data structure which describes the state of MFC module which is used by your EXE project’s code). This global EXE state is also returned by the AfxGetAppModuleState() API. If an MFC extension DLL extends features of a regular DLL/ActiveX module, it is not possible to detect at the load time which DLL is required the MFC extension library. We can get all the list of DLLs loaded by the running process but we cannot detect which DLLs require the particular MFC extension DLL. That is why the RDE extension library should be initialized by explicitly calling some method.

w t Jul 17, 2006 - 9:44 PM

Thank you very much!