Incompatibilities between different versions of msvcp dlls
Piotr Caban
piotr.caban at gmail.com
Fri Jul 27 07:26:34 CDT 2012
Hi,
There are many small differences between functions exported by different
versions of msvcp. Currently only msvcp60 contains a partial copy of
msvcp90 dll but it needs to be done for other dlls as well.
There are classes that are very similar but have different virtual
functions table depending on version of the dll. E.g. ctype class
(doesn't contain *_s functions in msvcp71 and msvcp100) and
basic_streambuf (in msvcp100 it contains _Lock/_Unlock and lacks *_s
functions).
In current way of implementing such differences it will lead to keeping
a copy of ios.c and locale.c files in msvcp60, msvcp71, msvcp90 and
msvcp100. The changes in code are minimal in these cases (e.g. in ctype
class case it's enough to remove _s functions in vtable and change
offsets in call_* macros for msvcp71/msvcp100).
Do you have any ideas about solving this problem? Is it acceptable to
add version specific defines to make the files identical between dlls?
Piotr
More information about the wine-devel
mailing list