DLL separation and PROFILE functions
Ian Pilcher
ian.pilcher at home.com
Tue May 15 16:29:10 CDT 2001
DLL separation has been mentioned quite a few times on this list
(usually as the ultimate solution to a problem), but I don't think I've
ever seen it actually defined. Based on my own misadventures in this
area, however, I would hazard a guess that is essentially the conversion
of all inter-DLL function calls from OS-based dynamic linking to the
Wine DLL loading mechanism.
Under this assumption, adding 'IMPORTS = ntdll' to a DLL's Makefile.in
file (in order to use one of the PROFILE functions) seems like a
definite step backwards. I think that the proper approach is to add the
function in question to dlls/ntdll/ntdll.spec and make sure that the
importing DLL lists ntdll.dll as an import in its own SPEC file.
All of which is wonderful until you consider the following in
ntdll.spec:
##################
# Wine extensions
#
# All functions must be prefixed with '__wine_' (for internal functions)
# or 'wine_' (for user-visible functions) to avoid namespace conflicts.
This would seem to indicate that the PROFILE functions (in
files/profile.c) need to have their names changed before they are
exported. Is this an appropriate time to go crazy with grep and sed?
(For example, PROFILE_EnumWineIniString would become
__wine_EnumIniString.)
--
========================================================================
Ian Pilcher ian.pilcher at home.com
========================================================================
More information about the wine-devel
mailing list