Reorganizing msvcrt related dlls implementation

Alexandre Julliard julliard at winehq.org
Mon Mar 29 09:43:08 CDT 2010


Piotr Caban <piotr at codeweavers.com> writes:

> Hi,
>
> Recently I was working on some msvcrt/msvcr90 functions.
>
> I found few problems related to how the implementation is organized:
>  - Some of the functions are invoking invalid_parameter, msvcrt is not
> allowing to change it, msvcr90 exports _set_invalid_parameter_handler.
>  - create_locale (not available on msvcrt) needs almost exactly the
> same internal functions as set_locale.
>
> I see few ways of implementing this functions:
>  - Copy implementations of functions that are invoking
> invalid_parameter_handler to msvcr90. This will introduce lots of code
> duplication in future (currently most of functions that should invoke
> invalid_parameter_handler are not implemented or are not calling
> it). Almost whole locale.c file will be copied.
>  - Create wine specific dll, forward msvcrt and msvcr90 calls to it.
>  - Move implementation of some functions from msvcrt to msvcr90. It'll
> probably introduce similar problems when newer msvcrXX appears.
>
> What solution is preferred? Any other ideas?

For cases like this where half the functionality is already in msvcrt, I
think it's OK to export the extra functions from msvcrt too. Hopefully
they will get added by Microsoft sooner or later, since msvcrt is sort
of a superset of all the msvcr* dlls. Just make a clear note that they
are not officially exported yet.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list