#exports/DLL's
11-Jul-94 09:36:48
Sb: #30372-#exports/DLL's
Fm: Don Schmitt [MSFT] 74047,2146
To: David O. Hicks 76702,1002
Hi Michael,
> Concievably, you could rebuild MFC and _export all of the classes,
> and then you would be able to export derived classes. But,
> unfortunately, MS says this is a no go. In fact as you have noticed
> they manually _export member functions by ordinal number. I don't
> know of a good solution other than to look at some alternative to
> exporting the classes.
PMJI, I know MFC TechNote #33 doesn't go into a lot of Detail as to why
"class _export" syntax was not used for MFC250x.DLL. It states:
Using "class _export" may be a viable alternative for
building smaller DLLs, but in the case of a large DLL
like MFC, the default exporting mechanism has
efficiency and capacity limits.
The efficiency limit is the function name lookup speed. A function
can be found in a DLL's exported names table much more quickly
if it is exported by ordinal rather than by name (note that the
"class _export" syntax exports member functions by name).
The capacity limit is referring to the 64K limit on a module's
resident name table. If all of the MFC classes were exported
using "class _export" syntax then the name table would be filled
beyond capacity.
Best Regards,
Don Schmitt
Microsoft Developer Support