| DLL overrides |
| ------------- |
| |
| The wine.conf directives [DllDefaults] and [DllOverrides] are the |
| subject of some confusion. The overall purpose of most of these |
| directives are clear enough, though - given a choice, should Wine use |
| its own built-in DLLs, or should it use .DLL files found in an |
| existing Windows installation? This document explains how this feature |
| works. |
| |
| DLL types |
| |
| native |
| A "native" DLL is a .DLL file written for the real Microsoft |
| Windows. |
| |
| builtin |
| A "builtin" DLL is a Wine DLL. These can either be a part of |
| libwine.so, or more recently, in a special .so file that Wine |
| is able to load on demand. |
| |
| elfdll |
| An "elfdll" is a Wine .so file with a special Windows-like file |
| structure that is as close to Windows as possible, and that can |
| also seamlessly link dynamically with "native" DLLs, by using |
| special ELF loader and linker tricks. Bertho Stultiens did some |
| work on this, but this feature has not yet been merged back |
| into Wine (because of political reasons and lack of time), so |
| this DLL type does not exist in the official Wine at this time. |
| In the meantime, the "builtin" DLL type gained some of the |
| features of elfdlls (such as dynamic loading), so it's possible |
| that "elfdll" functionality will be folded into "builtin" at |
| some point. |
| |
| so |
| A native Unix .so file, with calling convention conversion |
| thunks generated on the fly as the library is loaded. This is |
| mostly useful for libraries such as "glide" that has exactly |
| the same API on both Windows and Unix. |
| |
| The [DllDefaults] section |
| |
| EXTRA_LD_LIBRARY_PATH |
| This specifies the location of the Wine's DLL .so files. Wine |
| will search this path when trying to locate a DLL of the type |
| "builtin" or "elfdll". (This does not apply to libwine.so, |
| since libwine.so is not a DLL in this sense.) |
| |
| DefaultLoadOrder |
| This specifies in what order Wine should search for available |
| DLL types, if the DLL in question was not found in the |
| [DllOverrides] section. |
| |
| The [DllPairs] section |
| |
| At one time, there was a section called [DllPairs] in the default |
| configuration file, but this has been obsoleted because the pairing |
| information has now been embedded into Wine itself. (The purpose of |
| this section was merely to be able to issue warnings if the user |
| attempted to pair codependent 16-bit/32-bit DLLs of different types.) |
| If you still have this in your wine.conf or .winerc, you may safely |
| delete it. |
| |
| The [DllOverrides] section |
| |
| This section specifies how you want specific DLLs to be handled, in |
| particular whether you want to use "native" DLLs or not, if you have |
| some from a real Windows configuration. Because builtins do not mix |
| seamlessly with native DLLs yet, certain DLL dependencies may be |
| problematic, but workarounds exist in Wine for many popular DLL |
| configurations. Also see WWN's [16]Status Page to figure out how well |
| your favorite DLL is implemented in Wine. |
| |
| It is of course also possible to override these settings by explictly |
| using Wine's --dll command-line option (see the man page for details). |
| |
| Some hints for choosing your optimal configuration (listed by |
| 16/32-bit DLL pair): |
| |
| krnl386, kernel32 |
| Native versions of these will never work, so don't try. Leave |
| at builtin. |
| |
| gdi, gdi32 |
| Graphics Device Interface. No effort has been made at trying to |
| run native GDI. Leave at builtin. |
| |
| user, user32 |
| Window management and standard controls. It was possible to use |
| Win95's native versions at some point (if all other DLLs that |
| depend on it, such as comctl32 and comdlg32, were also run |
| native). However, this is no longer possible after the Address |
| Space Separation, so leave at builtin. |
| |
| ntdll |
| NT kernel API. Although badly documented, the native version of |
| this will never work. Leave at builtin. |
| |
| w32skrnl |
| Win32s (for Win3.x). Native version will probably never work. |
| Leave at builtin. |
| |
| wow32 |
| Win16 support library for NT. Native version will probably |
| never work. Leave at builtin. |
| |
| system |
| Win16 kernel stuff. Will never work native. Leave at builtin. |
| |
| display |
| Display driver. Definitely leave at builtin. |
| |
| toolhelp |
| Tool helper routines. This is rarely a source of problems. |
| Leave at builtin. |
| |
| ver, version |
| Versioning. Seldom useful to mess with. |
| |
| advapi32 |
| Registry and security features. Trying the native version of |
| this may or may not work. |
| |
| commdlg, comdlg32 |
| Common Dialogs, such as color picker, font dialog, print |
| dialog, open/save dialog, etc. It is safe to try native. |
| |
| commctrl, comctl32 |
| Common Controls. This is toolbars, status bars, list controls, |
| the works. It is safe to try native. |
| |
| shell, shell32 |
| Shell interface (desktop, filesystem, etc). Being one of the |
| most undocumented pieces of Windows, you may have luck with the |
| native version, should you need it. |
| |
| winsock, wsock32 |
| Windows Sockets. The native version will not work under Wine, |
| so leave at builtin. |
| |
| icmp |
| ICMP routines for wsock32. As with wsock32, leave at builtin. |
| |
| mpr |
| The native version may not work due to thunking issues. Leave |
| at builtin. |
| |
| lzexpand, lz32 |
| Lempel-Ziv decompression. Wine's builtin version ought to work |
| fine. |
| |
| winaspi, wnaspi32 |
| Advanced SCSI Peripheral Interface. The native version will |
| probably never work. Leave at builtin. |
| |
| crtdll |
| C Runtime library. The native version will easily work better |
| than Wine's on this one. |
| |
| winspool.drv |
| Printer spooler. You are not likely to have more luck with the |
| native version. |
| |
| ddraw |
| DirectDraw/Direct3D. Since Wine does not implement the DirectX |
| HAL, the native version will not work at this time. |
| |
| dinput |
| DirectInput. Running this native may or may not work. |
| |
| dsound |
| DirectSound. It may be possible to run this native, but don't |
| count on it. |
| |
| dplay/dplayx |
| DirectPlay. Native ought to work best on this, if at all. |
| |
| mmsystem, winmm |
| Multimedia system. The native version is not likely to work. |
| Leave at builtin. |
| |
| msacm, msacm32 |
| Audio Compression Manager. Builtin works best, if you set |
| msacm.drv to the same. |
| |
| msvideo, msvfw32 |
| Video for Windows. It is safe (and recommended) to try native. |
| |
| mcicda.drv |
| CD Audio MCI driver. |
| |
| mciseq.drv |
| MIDI Sequencer MCI driver (.MID playback). |
| |
| mciwave.drv |
| Wave audio MCI driver (.WAV playback). |
| |
| mciavi.drv |
| AVI MCI driver (.AVI video playback). Best to use native. |
| |
| mcianim.drv |
| Animation MCI driver. |
| |
| msacm.drv |
| Audio Compression Manager. Set to same as msacm32. |
| |
| midimap.drv |
| MIDI Mapper. |
| |
| wprocs |
| This is a pseudo-DLL used by Wine for thunking purposes. A |
| native version of this doesn't exist. |
| |
| Have fun... |
| |
| - Ove Kåven |