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