about overriding dlls

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
fcmartins
Level 4
Level 4
Posts: 114
Joined: Sat Nov 01, 2008 5:48 pm

about overriding dlls

Post by fcmartins »

I am checking an old bug http://bugs.winehq.org/show_bug.cgi?id=9637 which happens to affect several games. Before arriving to the bug in question, one has to workaround another bug relate to shdocvw.dll.

It is recommended to override a set of libraries which I believe should be put in system32. However, at least some of the dlls are already there. Are these the wine builtins or rather proxies as mentioned here: http://winehq.org/site/docs/wineusr-gui ... -wine-main.

Could someone clear up where are the wine builtin dlls and where should I put the overrides in such a way that I can choose between both with winecfg?
austin987
Wine Developer
Wine Developer
Posts: 2383
Joined: Fri Feb 22, 2008 8:19 pm

about overriding dlls

Post by austin987 »

On Sun, Mar 29, 2009 at 2:33 PM, fcmartins <[email protected]> wrote:
I am checking an old bug http://bugs.winehq.org/show_bug.cgi?id=9637 which happens to affect several games. Before arriving to the bug in question, one has to workaround another bug relate to shdocvw.dll.
Careful, that dll depends on a few others (mshtml/urlmon/etc.)
It is recommended to override a set of libraries which I believe should be put in system32. However, at least some of the dlls are already there. Are these the wine builtins or rather proxies as mentioned here: http://winehq.org/site/docs/wineusr-gui ... -wine-main.
Yes, they are placeholders.
Could someone clear up where are the wine builtin dlls and where should I put the overrides in such a way that I can choose between both with winecfg?
In system32, or the application's directory.


--
-Austin
fcmartins
Level 4
Level 4
Posts: 114
Joined: Sat Nov 01, 2008 5:48 pm

Post by fcmartins »

Thanks, out of curiosity, how does wine provide its dlls? I'm guessing they are packed in some file(s) out of Windows installation and depending on overriding information, a dll func call is directed to the builtin or the native dll. Where the builtin really exists, its hidden from the calling function.

Something like this or another approach?
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Post by vitamin »

fcmartins wrote:Thanks, out of curiosity, how does wine provide its dlls?
As native ELF libraries with extra Wine-specific data. For apps they look exactly as regular windows dlls (otherwise many programs won't work).

Unless you know how loader works it's useless to explain you how Wine does it. All you need to know:
- Only the whole dll can be overridden (not per/function as you implied)
- Depending on override order whole built-in or native dll is loaded (but not both at the same time)
- Wine builtin dlls located outside of wineprefix (~/.wine). All you see in system32 are "placeholder dlls" - resources only
fcmartins
Level 4
Level 4
Posts: 114
Joined: Sat Nov 01, 2008 5:48 pm

Post by fcmartins »

thanks, that answered it.
Locked