Article ID: 167929
Article Last Modified on 11/21/2006
a CDynLinkLibrary object at $00410F70, 64 bytes long
a CDynLinkLibrary object at $00410F70, 64 bytes long
{38} client block at 0x00410D80, subtype 0, 64 bytes long.
a CDynLinkLibrary object at $00410D80, 64 bytes long
a CDynLinkLibrary object at $00410D80, 64 bytes long
{36} client block at 0x00410C60, subtype 0, 64 bytes long.
a CDynLinkLibrary object at $00410C60, 64 bytes long
a CDynLinkLibrary object at $00410C60, 64 bytes long
int CTestDllApp::ExitInstance()
{
TRACE(_T("ExitInstance() for regular DLL: TESTDLL\n"));
return CWinApp::ExitInstance();
}
Only the memory leaks that are detected after the last
CWinApp::ExitInstance() is called are true memory leaks.
------------- --------------
= = = =
= MFC = Calls = MFC =
= APP = ------------> = USRDLL =
= = = =
= = = =
------------- --------------
| |
| |
| Calls | Calls
| |
\/ \/
------------- --------------
= = = =
= = = =
= MFC40d = = MFC40Ud =
= DLL = = DLL =
= = = =
------------- --------------
\ /
\ /
\ Calls / Calls
\ /
\/ \/
-------------
= =
= =
= MSVCR40d =
= (CRT) =
= =
-------------
The MFC Application that is built with the ANSI (MFC40d.DLL) version of MFC
calls the MFC USRDLL, which is built with the UNICODE (MFC40Ud.DLL) version
of MFC. Both MFC versions use the same C run-time (CRT) DLL, MSVCR40d.DLL.
Since MFC USRDLLs are "black-boxes", there should be no problems with
calling a UNICODE MFC USRDLL from an ANSI MFC Application.
Keywords: kbtshoot kbdll kbprb KB167929