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
|