217 lines
7.8 KiB
Plaintext
217 lines
7.8 KiB
Plaintext
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
|