- Move "questions and comments" at the top of the document.

- Removed elfdll documentation.
- Properly documented Desktop and Managed config.
- Rearranged config entries according to importance.
- "wine.conf" -> "the wine config file" in some cases.
- Updated to new FTP URLs.
- Fix non-backslash-escaped paths (ouch !).
- Replace text references by real links.
- Misc. other updates.
This commit is contained in:
Andreas Mohr 2002-07-24 03:00:02 +00:00 committed by Alexandre Julliard
parent e1ae23e094
commit 5ec74d6f72
15 changed files with 688 additions and 648 deletions

View File

@ -13,6 +13,9 @@
-->
<!entity name-web-admin "WineHQ Web-Admin">
<!entity email-web-admin "web-admin@winehq.com">
<!entity name-jonathan-buzzard "Jonathan Buzzard">
<!entity email-jonathan-buzzard "jab@hex.prestel.co.uk">
@ -112,5 +115,3 @@
<!entity name-koen-deforche "Koen Deforche">
<!entity email-koen-deforche "jozef@kotnet.org">

View File

@ -20,7 +20,7 @@
way -- advanced developers will probably prefer this.
</para>
<para>
When using either approach please report the problem you found
When using either approach please report the problem you found
along with any relevant information to
<ulink url="http://bugs.winehq.com/">Wine Bugzilla</ulink>.
</para>
@ -56,7 +56,7 @@
<para>
Post the bug to
<ulink url="http://bugs.winehq.com/">Wine Bugzilla</ulink>.
Please, search Bugzilla database to check whether your problem is
Please, search Bugzilla database to check whether your problem is
already found before posting a bug report.
Include your own detailed description of the problem with
relevant information. Attach the "Nice Formatted Report"
@ -157,7 +157,7 @@
<term>all shells:</term>
<listitem>
<screen>
<prompt>$ </prompt>echo quit | wine -debugmsg +relay [other_options] program_name >& filename.out;
<prompt>$ </prompt>echo quit | wine -debugmsg +relay [other_options] program_name >& filename.out;
<prompt>$ </prompt>tail -n 100 filename.out > report_file
</screen>
<para>
@ -166,7 +166,7 @@
prints out so many debug msgs that they flood the terminal, eating CPU.)
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>tcsh and other csh-like shells:</term>
<listitem>
@ -184,7 +184,7 @@
<prompt>$ </prompt>tail -100 filename.out > report_file
</screen>
</listitem>
</varlistentry>
</varlistentry>
</variablelist>
<para>
<filename>report_file</filename> will now contain the
@ -197,8 +197,8 @@
<listitem>
<para>
Post the bug to <ulink url="http://bugs.winehq.com/">Wine Bugzilla</ulink>.
Please, search the Bugzilla database to check whether your problem
is already reported. If it is already reported attach the bug report
Please, search the Bugzilla database to check whether your problem
is already reported. If it is already reported attach the bug report
and add any other relevant information to the original bug report.
</para>
<para>
@ -210,17 +210,6 @@
</listitem>
</orderedlist>
</sect2>
<sect2>
<title>Questions and comments</title>
<para>
If after reading this document there is something you
couldn't figure out, or think could be explained better, or
that should have been included, please post to
<ulink url="http://bugs.winehq.com/">Wine Bugzilla</ulink> to
let us know how this document can be improved.
</para>
</sect2>
</sect1>
</chapter>

View File

@ -18,17 +18,17 @@
<itemizedlist>
<listitem>
<para>
Drives and Information about them
Drives and information about them
</para>
</listitem>
<listitem>
<para>
Directory Settings
Directory settings
</para>
</listitem>
<listitem>
<para>
Port Settings
Port settings
</para>
</listitem>
<listitem>
@ -38,12 +38,12 @@
</listitem>
<listitem>
<para>
Wine's DLL Usage
Wine's DLL usage
</para>
</listitem>
<listitem>
<para>
Wine's Multimedia drivers and DLL configuration
Wine's multimedia drivers and DLL configuration
</para>
</listitem>
</itemizedlist>
@ -524,10 +524,13 @@ And here is a setup for Drive A, a generic floppy drive:
</para></listitem>
</varlistentry>
<varlistentry>
<term>elfdll</term>
<term>builtin</term>
<listitem><para>
ELF encapsulated windows DLL's. This is currently
experimental (Not working yet).
The most common form of DLL loading. This is
what you will use if the DLL is error-prone in
native form (KERNEL for example), you don't have
the native DLL, or you just want to be
Microsoft-free.
</para></listitem>
</varlistentry>
<varlistentry>
@ -537,13 +540,10 @@ And here is a setup for Drive A, a generic floppy drive:
</para></listitem>
</varlistentry>
<varlistentry>
<term>builtin</term>
<term>elfdll</term>
<listitem><para>
The most common form of DLL loading. This is
what you will use if the DLL is error-prone in
native form (KERNEL for example), you don't have
the native DLL, or you just want to be
Microsoft-free.
ELF encapsulated windows DLL's.
No longer used, ignored.
</para></listitem>
</varlistentry>
</variablelist>
@ -570,14 +570,14 @@ And here is a setup for Drive A, a generic floppy drive:
<sect3>
<title>The [DllPairs] Section</title>
<para>
At one time, there was a section called [DllPairs] in the
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 <filename>wine.conf</filename> or
<filename>~/.wine/config</filename>, you may safely delete it.
still have this in your <filename>~/.wine/.config</filename> or
<filename>wine.conf</filename>, you may safely delete it.
</para>
</sect3>
@ -614,18 +614,22 @@ And here is a setup for Drive A, a generic floppy drive:
that was included with your wine package):
<programlisting>
[DllOverrides]
"rpcrt4" = "builtin, native"
"oleaut32" = "builtin, native"
"ole32" = "builtin, native"
"commdlg" = "builtin, native"
"comdlg32" = "builtin, native"
"ver" = "builtin, native"
"version" = "builtin, native"
"shell" = "builtin, native"
"shell32" = "builtin, native"
"shfolder" = "builtin, native"
"shlwapi" = "builtin, native"
"shdocvw" = "builtin, native"
"lzexpand" = "builtin, native"
"lz32" = "builtin, native"
"comctl32" = "builtin, native"
"commctrl" = "builtin, native"
"wsock32" = "builtin"
"winsock" = "builtin"
"advapi32" = "builtin, native"
"crtdll" = "builtin, native"
"mpr" = "builtin, native"
@ -633,8 +637,7 @@ And here is a setup for Drive A, a generic floppy drive:
"ddraw" = "builtin, native"
"dinput" = "builtin, native"
"dsound" = "builtin, native"
"mmsystem" = "builtin"
"winmm" = "builtin"
"opengl32" = "builtin, native"
"msvcrt" = "native, builtin"
"msvideo" = "builtin, native"
"msvfw32" = "builtin, native"
@ -647,16 +650,16 @@ And here is a setup for Drive A, a generic floppy drive:
"msacm" = "builtin, native"
"msacm32" = "builtin, native"
"midimap.drv" = "builtin, native"
"wnaspi32" = "builtin"
"icmp" = "builtin"
; you can specify applications too
"notepad.exe" = "native, builtin"
; default for all other dlls
"*" = "native, builtin"
</programlisting>
</para>
<note>
<para>
You see that elfdll or so is the first option for a few
of these dll's. This will fail for you, but you won't
notice it as wine will just use the second or third
option.
If loading of the libraries that are listed first fails,
wine will just go on by using the second or third option.
</para>
</note>
</sect3>
@ -686,7 +689,7 @@ And here is a setup for Drive A, a generic floppy drive:
The default font wine uses. Fool around with it if you'd like.
</para>
<para>
OPTIONAL:
OPTIONAL:
</para>
<para>
The <literal>Alias</literal> setting allows you to map an X font to a font
@ -708,10 +711,10 @@ OPTIONAL:
</para>
<para>
Here is an example of an alias without masking. The font will show up in windows
apps as "Google". When defining an alias in a config file, forget about my
comment text (The "&lt;-- blah" stuff)
apps as "Google".
<programlisting>
"Alias0" = "Foo,--google-" &lt;
"Alias0" = "Foo,--google-"
</programlisting>
</para>
<para>
@ -722,7 +725,8 @@ OPTIONAL:
</programlisting>
</para>
<para>
For more info check out <filename>&lt;dirs to wine>/documentation/fonts</filename>
For more info check out the <link linkend="fonts">Fonts</link>
chapter.
</para>
</sect3>
@ -731,7 +735,7 @@ OPTIONAL:
<para>
Even though it sounds like a lot of sections, these are
all closely related. They are all for communications and
parallel ports.
parallel ports.
</para>
<para>
The [serialports] section tells wine what serial ports it
@ -776,18 +780,18 @@ OPTIONAL:
time, so it won't work perfectly. IT IS OPTIONAL. The only
setting you use in this section works to map a port (LPT1,
for example) to a file or a command. Here is an example,
mapping LPT1 to the file <filename>out.ps</filename>:
mapping LPT1 to the file <filename>out.ps</filename>:
<programlisting>"LPT1:" = "out.ps"</programlisting>
</para>
<para>
The following command maps printing jobs to LPT1 to the
command <command>lpr</command>. Notice the |:
command <command>lpr</command>. Notice the |:
<programlisting>"LPT1:" = "|lpr"</programlisting>
</para>
<para>
The [ports] section is usually useful only for people who
need direct port access for programs requiring dongles or
scanners. IF YOU DON'T NEED IT, DON'T USE IT!
scanners. IF YOU DON'T NEED IT, DON'T USE IT!
</para>
<para>
<programlisting>"read" = "0x779,0x379,0x280-0x2a0"</programlisting>
@ -871,18 +875,18 @@ OPTIONAL:
<para>
The content of the section looks like:
<programlisting>
<programlisting>
[WinMM]
"Drivers" = "wineoss.drv"
"WaveMapper" = "msacm.drv"
"MidiMapper" = "midimap.drv"
</programlisting>
</programlisting>
All the keys must be defined:
<itemizedlist>
<listitem>
<para>
The "Drivers" key is a ';' separated list of modules name, each of
them containing a low level driver. All those drivers will be loaded
The "Drivers" key is a ';' separated list of modules name, each of
them containing a low level driver. All those drivers will be loaded
when MMSYSTEM/WINMM is started and will provide their inner features.
</para>
</listitem>
@ -894,8 +898,8 @@ OPTIONAL:
</listitem>
<listitem>
<para>
The "MidiMapper" represents the name of the module containing the Midi
Mapper driver. Only one Midi mapper can be defined in the system.
The "MidiMapper" represents the name of the module containing the MIDI
Mapper driver. Only one MIDI mapper can be defined in the system.
</para>
</listitem>
</itemizedlist>
@ -905,23 +909,25 @@ OPTIONAL:
<sect3>
<title>The [AppDefaults] Section</title>
<para>
The section is used to overwrite the setting of this file for a
The section is used to overwrite certain settings of this file for a
special program with different settings.
[AppDefaults] is not the real name of the section. The real name
consists of the leading word AppDefaults followed by the name
of the executable the section is valid for. The end of the section
name is the name of the section of the configuration file its
values should be overwritten with different settings. The three
parts of the section name are separated by two backslashes.
consists of the leading word AppDefaults followed by the name
of the executable the section is valid for.
The end of the section name is the name of the
corresponding "standard" section of the configuration file
that should have some of its settings overwritten with the
application specific settings you define.
The three parts of the section name are separated by two backslashes.
</para>
<para>
Currently wine supports only overwriting the sections
[DllOverrides] and [x11drv].
Currently wine supports only overwriting the sections
[DllOverrides], [x11drv], [version] and [dsound].
</para>
<para>
Here is an example that overwrites the normal settings for a
program:
<programlisting>
<programlisting>
;; default settings
[x11drv]
"Managed" = "Y"
@ -931,7 +937,7 @@ OPTIONAL:
[AppDefaults\\install.exe\\x11drv]
"Managed" = "N"
"Desktop" = "800x600"
</programlisting>
</programlisting>
</para>
</sect3>
</sect2>
@ -948,21 +954,21 @@ OPTIONAL:
A systemwide config file, used for anyone who doesn't
have their own. NOTE: this file is currently unused as a
new global configuration mechanism is not in place at this
time
time.
</para></listitem>
</varlistentry>
<varlistentry>
<term><filename>$HOME/.wine/config</filename></term>
<listitem><para>
Your own config file, that only is used for your user.
Your own config file (which only is used for your user).
</para></listitem>
</varlistentry>
</variablelist>
<para>
So copy your version of the <filename>wine.conf</filename> file to
<filename>/usr/local/etc/wine.conf</filename> or
<filename>$HOME/.wine/config</filename> for wine to recognize
it.
So copy your version of the wine config file to
<filename>$HOME/.wine/config</filename>
or <filename>/usr/local/etc/wine.conf</filename>
for wine to recognize it.
</para>
</sect2>
@ -970,7 +976,7 @@ OPTIONAL:
<title>What If It Doesn't Work?</title>
<para>
There is always a chance that things will go wrong. If the
unthinkable happens report the problem to
unthinkable happens, report the problem to
<ulink url="http://bugs.winehq.com/">Wine Bugzilla</ulink>,
try the newsgroup
<systemitem>comp.emulators.ms-windows.wine</systemitem>,
@ -985,8 +991,7 @@ OPTIONAL:
</listitem>
<listitem>
<para>
<filename>http://www.la-sorciere.de/wine/index.html</filename>
(optional but recommended)
<filename>http://www.winehq.org/trouble/</filename>
</para>
</listitem>
</itemizedlist>
@ -1060,15 +1065,13 @@ OPTIONAL:
that want to draw their own.
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>Managed</term>
<listitem>
<para>
Specified by using the
<parameter>--managed</parameter> command-line option
or the <literal>Managed</literal>
<filename>wine.conf</filename> option (see below).
Specified by using the <literal>Managed</literal>
wine config file option (see below).
Ordinary top-level frame windows with thick borders,
title bars, and system menus will be managed by your
window manager. This lets these applications integrate
@ -1084,11 +1087,11 @@ OPTIONAL:
<term>Desktop-in-a-Box</term>
<listitem>
<para>
Specified by using the
<parameter>--desktop</parameter> command-line option
(with a geometry, e.g. <parameter>--desktop
800x600</parameter> for a such-sized desktop, or
even <parameter>--desktop 800x600+0+0</parameter> to
Specified by using the <literal>Desktop</literal>
wine config file option (see below).
(adding a geometry, e.g. <literal>800x600</literal>
for a such-sized desktop, or
even <literal>800x600+0+0</literal> to
automatically position the desktop at the upper-left
corner of the display). This is the mode most
compatible with the Windows model. All application
@ -1098,6 +1101,8 @@ OPTIONAL:
applications can roam freely within this virtual
workspace and think they own it all, without
disturbing your other X apps.
Note: currently there's on desktop window for every
application; this will be fixed in the future.
</para>
</listitem>
</varlistentry>
@ -1108,68 +1113,6 @@ OPTIONAL:
<title>The [x11drv] section</title>
<variablelist>
<varlistentry>
<term>AllocSystemColors</term>
<listitem>
<para>
Applies only if you have a palette-based display, i.e.
if your X server is set to a depth of 8bpp, and if you
haven't requested a private color map. It specifies
the maximum number of shared colormap cells (palette
entries) Wine should occupy. The higher this value,
the less colors will be available to other
applications.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PrivateColorMap</term>
<listitem>
<para>
Applies only if you have a palette-based display, i.e.
if your X server is set to a depth of 8bpp. It
specifies that you don't want to use the shared color
map, but a private color map, where all 256 colors are
available. The disadvantage is that Wine's private
color map is only seen while the mouse pointer is
inside a Wine window, so psychedelic flashing and
funky colors will become routine if you use the mouse
a lot.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PerfectGraphics</term>
<listitem>
<para>
This option only determines whether fast X11 routines
or exact Wine routines will be used for certain ROP
codes in blit operations. Most users won't notice any
difference.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ScreenDepth</term>
<listitem>
<para>
Applies only to multi-depth displays. It specifies
which of the available depths Wine should use (and
tell Windows apps about).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Display</term>
<listitem>
<para>
This specifies which X11 display to use, and if
specified, will override both the
<envar>DISPLAY</envar> environment variable and the
<parameter>--display</parameter> command-line option.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Managed</term>
<listitem>
@ -1179,7 +1122,30 @@ OPTIONAL:
by default.
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>Desktop</term>
<listitem>
<para>
Creates a main desktop window of a specified size
to display all Windows applications in.
The size argument could e.g. be "800x600".
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DXGrab</term>
<listitem>
<para>
If you don't use DGA, you may want an alternative
means to convince the mouse cursor to stay within the
game window. This option does that. Of course, as with
DGA, if Wine crashes, you're in trouble (although not
as badly as in the DGA case, since you can still use
the keyboard to get out of X).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>UseDGA</term>
<listitem>
@ -1200,7 +1166,7 @@ OPTIONAL:
<filename>/dev/mem</filename>.
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>UseXShm</term>
<listitem>
@ -1215,20 +1181,7 @@ OPTIONAL:
sometimes.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DXGrab</term>
<listitem>
<para>
If you don't use DGA, you may want an alternative
means to convince the mouse cursor to stay within the
game window. This option does that. Of course, as with
DGA, if Wine crashes, you're in trouble (although not
as badly as in the DGA case, since you can still use
the keyboard to get out of X).
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>DesktopDoubleBuffered</term>
<listitem>
@ -1242,6 +1195,80 @@ OPTIONAL:
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>AllocSystemColors</term>
<listitem>
<para>
Applies only if you have a palette-based display, i.e.
if your X server is set to a depth of 8bpp, and if you
haven't requested a private color map. It specifies
the maximum number of shared colormap cells (palette
entries) Wine should occupy. The higher this value,
the less colors will be available to other
applications.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PrivateColorMap</term>
<listitem>
<para>
Applies only if you have a palette-based display, i.e.
if your X server is set to a depth of 8bpp. It
specifies that you don't want to use the shared color
map, but a private color map, where all 256 colors are
available. The disadvantage is that Wine's private
color map is only seen while the mouse pointer is
inside a Wine window, so psychedelic flashing and
funky colors will become routine if you use the mouse
a lot.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Synchronous</term>
<listitem>
<para>
To be used for debugging X11 operations.
If Wine crashes with an X11 error, then you should enable
Synchronous mode to disable X11 request caching in order
to make sure that the X11 error happens directly after
the corresponding X11 call in the log file appears.
Will slow down X11 output !
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ScreenDepth</term>
<listitem>
<para>
Applies only to multi-depth displays. It specifies
which of the available depths Wine should use (and
tell Windows apps about).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Display</term>
<listitem>
<para>
This specifies which X11 display to use, and if
specified, will override the
<envar>DISPLAY</envar> environment variable.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PerfectGraphics</term>
<listitem>
<para>
This option only determines whether fast X11 routines
or exact Wine routines will be used for certain ROP
codes in blit operations. Most users won't notice any
difference.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>TextCP</term>
<listitem>
@ -1260,17 +1287,8 @@ OPTIONAL:
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Synchronous</term>
<listitem>
<para>
<!-- FIXME: To be documented -->
To be documented...
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect2>
</sect1>
&registry;
@ -1439,16 +1457,16 @@ OPTIONAL:
<title>DLL configuration</title>
<sect2 id="dll-overrides">
<title>DLL Overrides</title>
<para>
Written by &name-ove-kaaven; <email>&email-ove-kaaven;</email>
</para>
<para>
(Extracted from <filename>wine/documentation/dll-overrides</filename>)
</para>
<para>
The <filename>wine.conf</filename> directives [DllDefaults]
The wine config file 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
@ -1456,7 +1474,7 @@ OPTIONAL:
in an existing Windows installation? This document explains
how this feature works.
</para>
<sect3>
<title>DLL types</title>
<variablelist>
@ -1476,24 +1494,6 @@ OPTIONAL:
that Wine is able to load on demand.
</para> </listitem>
</varlistentry>
<varlistentry>
<term>elfdll</term>
<listitem> <para>
An "elfdll" is a Wine <filename>.so</filename> 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.
</para> </listitem>
</varlistentry>
<varlistentry>
<term>so</term>
<listitem> <para>
@ -1504,9 +1504,9 @@ OPTIONAL:
same API on both Windows and Unix.
</para> </listitem>
</varlistentry>
</variablelist>
</variablelist>
</sect3>
<sect3>
<title>The [DllDefaults] section</title>
<variablelist>
@ -1520,7 +1520,7 @@ OPTIONAL:
</varlistentry>
</variablelist>
</sect3>
<sect3>
<title>The [DllPairs] section</title>
<para>
@ -1530,11 +1530,11 @@ OPTIONAL:
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 <filename>wine.conf</filename> or
<filename>~/.wine/config</filename>, you may safely delete it.
still have this in your <filename>~/.wine/config</filename> or
<filename>wine.conf</filename>, you may safely delete it.
</para>
</sect3>
<sect3>
<title>The [DllOverrides] section</title>
<para>
@ -1568,7 +1568,7 @@ OPTIONAL:
Graphics Device Interface. No effort has been made at trying to
run native GDI. Leave at <literal>builtin</literal>.
</para> </listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>user, user32</term>
<listitem> <para>
@ -1612,7 +1612,7 @@ OPTIONAL:
<literal>native</literal>. Leave at
<literal>builtin</literal>.
</para> </listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>display</term>
<listitem> <para>
@ -1662,7 +1662,7 @@ OPTIONAL:
most undocumented pieces of Windows, you may have luck with the
<literal>native</literal> version, should you need it.
</para> </listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>winsock, wsock32</term>
<listitem> <para>
@ -1730,7 +1730,7 @@ OPTIONAL:
DirectInput. Running this <literal>native</literal>
may or may not work.
</para> </listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>dsound</term>
<listitem> <para>
@ -1820,16 +1820,16 @@ OPTIONAL:
doesn't exist.
</para> </listitem>
</varlistentry>
</variablelist>
</variablelist>
</sect3>
</sect2>
<sect2 id="dll-missing">
<title>Missing DLLs</title>
<para>
Written by &name-andreas-mohr; <email>&email-andreas-mohr;</email>
</para>
<para>
In case Wine complains about a missing DLL, you should check whether
this file is a publicly available DLL or a custom DLL belonging
@ -1839,13 +1839,35 @@ OPTIONAL:
DLLs usually get loaded according to the mechanism of the
SearchPath() function.
This function searches directories in the following order:
a) The directory the program was started from.
b) The current directory.
c) The Windows system directory.
d) The Windows directory.
e) The PATH variable directories.
<orderedlist>
<listitem>
<para>
The directory the program was started from.
</para>
</listitem>
<listitem>
<para>
The current directory.
</para>
</listitem>
<listitem>
<para>
The Windows system directory.
</para>
</listitem>
<listitem>
<para>
The Windows directory.
</para>
</listitem>
<listitem>
<para>
The PATH variable directories.
</para>
</listitem>
</orderedlist>
In short: either put the required DLL into your application
directory (might be ugly), or usually put it into the Windows system
directory. Just find out its directory by having a look at the Wine
@ -2000,7 +2022,7 @@ static const char main_key_NO[MAIN_LEN][4] =
"aA","sS","dD","fF","gG","hH","jJ","kK","lL","øØ","æÆ","'*",
"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"&lt;>"
};
};
</programlisting>
<para>
Except that " and \ needs to be quoted with a backslash, and
@ -2019,7 +2041,7 @@ static struct {
} main_key_tab[]={
...
...
{MAKELANGID(LANG_NORWEGIAN,SUBLANG_DEFAULT), 1252, 865, &amp;main_key_NO},
{MAKELANGID(LANG_NORWEGIAN,SUBLANG_DEFAULT), 1252, 865, &amp;main_key_NO},
...
</programlisting>
<para>

View File

@ -124,7 +124,7 @@
<listitem>
<para>works with console handles</para>
</listitem>
</itemizedlist>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
@ -236,10 +236,10 @@ wine -console ncurses+xterm &lt;application&gt;
</sect3>
<sect3>
<title>II. <filename>wine.conf</filename> Configuration</title>
<title>II. wine config file configuration</title>
<para>
In the <filename>wine.conf</filename> file, you can create
In the wine config file, you can create
a section called [console] that contains configuration
options that are respected by the assorted console
drivers.
@ -370,7 +370,7 @@ wine -console ncurses+xterm &lt;application&gt;
As X terminals typically use a 24x80 screen resolution
rather than the typical 25x80 one, it is necessary to
resize the screen to allow a DOS program to work
full-screen. There is a <filename>wine.conf</filename>
full-screen. There is a wine config file
option to work around this in some cases but run-time
resizing will be disabled.
</para>

View File

@ -760,7 +760,7 @@ HRSRC16 WINAPI FindResource16( HMODULE16 hModule, SEGPTR name, SEGPTR type )
<listitem>
<para>
for messages intended for the user (specifically those that
report errors in <filename>wine.conf</filename>), use the
report errors in the wine config file), use the
<literal>MSG</literal> macro. Use it like a
<function>printf</function>:
<programlisting>

View File

@ -32,7 +32,7 @@
fonts (<filename>VGASYS.FON</filename>,
<filename>SSERIFE.FON</filename>, and
<filename>SERIFE.FON</filename>) into the format that the X
Window System can recognize.
Window System can recognize.
</para>
<orderedlist>
@ -62,7 +62,7 @@
copied fonts to. If you are already in X you should run
<command>xset fp rehash</command> to make X server aware
of the new fonts. You may also or instead have to restart
the font server (using e.g.
the font server (using e.g.
<command>/etc/init.d/xfs restart</command>
under RedHat 7.1)
</para>
@ -252,7 +252,7 @@ Alias1 = ...
<literal>-sony-fixed-</literal> are different fonts Wine
modified the second extracted name to make sure Windows
programs can distinguish them because only extracted
names appear in the font selection dialogs.
names appear in the font selection dialogs.
</para>
</listitem>
<listitem>
@ -398,7 +398,7 @@ Resolution = &lt;integer value&gt;
<orderedlist>
<listitem>
<para>Get <filename>freetype-1.0.full.tar.gz</filename></para>
<para>Get a freetype source archive (<filename>freetype-X.Y.tar.gz</filename> ?).</para>
</listitem>
<listitem>
<para>Read docs, unpack, configure and install</para>
@ -485,7 +485,7 @@ FontPath "tcp/localhost:7100"
</para>
</listitem>
<listitem>
<para>Test with e.g <command>xlsfont | grep arial</command></para>
<para>Test with e.g. <command>xlsfont | grep arial</command></para>
</listitem>
</orderedlist>

View File

@ -25,7 +25,7 @@
linkend="getting-dist-other">other</link> distributions.
</para>
<para>
If you're not lucky enough to have an available package for
If you're not lucky enough to have a package available for
your operating system, or if you'd prefer a newer version of
Wine than already exists as a package, you may have to
download the Wine source code and compile it yourself on your
@ -33,7 +33,7 @@
especially with the many helpful tools that come with Wine.
You don't need any programming experience to compile and
install Wine, although it might be nice to have some minor
UNIX administrative skill. We'll cover how to retrieve and
UNIX administrative skills. We'll cover how to retrieve and
compile the official source releases from the <link
linkend="getting-source-ftp">FTP archives</link>, and also how
to get the cutting edge up-to-the-minute fresh Wine source
@ -113,7 +113,7 @@ $ su -
<para>
Redhat/RPM users can use <ulink url="http://rpmfind.net/linux/RPM/">
rpmfind.net</ulink> to track down available Wine RPM binaries.
rpmfind.net</ulink> to track down available Wine RPM binaries.
<ulink url="http://rpmfind.net/linux/RPM/WByName.html"> This
page</ulink> contains a list of all rpmfind packages that start with
the letter "W", including a few Wine packages
@ -160,7 +160,7 @@ $ su -
<para>
The safest way to grab the source is from one of the official
FTP archives. An up to date listing is in the <ulink
url="http://www.winehq.com/source/ANNOUNCE">ANNOUNCE </ulink>
url="http://www.winehq.com/source/ANNOUNCE">ANNOUNCE</ulink>
file in the Wine distribution (which you would have if you
already downloaded it). Here is a (possibly out of date) list
of FTP servers carrying Wine:
@ -168,15 +168,8 @@ $ su -
<itemizedlist>
<listitem>
<para>
<ulink url="ftp://metalab.unc.edu/pub/Linux/ALPHA/wine/development/">
ftp://metalab.unc.edu/pub/Linux/ALPHA/wine/development/
</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/">
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/
<ulink url="ftp://ftp.ibiblio.org/pub/Linux/ALPHA/wine/development/">
ftp://ftp.ibiblio.org/pub/Linux/ALPHA/wine/development/
</ulink>
</para>
</listitem>
@ -187,6 +180,13 @@ $ su -
</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/sunsite.unc.edu/ALPHA/wine/development/">
ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/sunsite.unc.edu/ALPHA/wine/development/
</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="ftp://orcus.progsoc.uts.edu.au/pub/Wine/development/">
@ -237,13 +237,13 @@ $ cvs checkout wine
the updates:
</para>
<screen>
$ cvs -dP update
$ cvs -PAd update
</screen>
<para>
<command>cvs update</command> works from inside the source tree.
You don't need the <envar>CVSROOT</envar> environment variable
to run it either. You just have to be inside the source tree.
The <parameter>-d</parameter> and <parameter>-P</parameter>
The <parameter>-P</parameter>, <parameter>-A</parameter> and <parameter>-d</parameter>
options make sure your local Wine tree directory structure stays
in sync with the remote repository.
</para>
@ -313,18 +313,18 @@ $ patch -p0 --dry-run < ../patch_to_apply.diff
</para>
<para>
The <parameter>-p0</parameter> option to <command>patch</command>
tells it to keep the full file name from the patch file. For example,
tells it to keep the full file name from the patch file. For example,
if the file name in the patch file was
<filename>wine/programs/clock/main.c</filename>.
Setting the <parameter>-p0</parameter> option would apply the patch
Setting the <parameter>-p0</parameter> option would apply the patch
to the file of the same name i.e.
<filename>wine/programs/clock/main.c </filename>.
Setting the <parameter>-p1</parameter> option would strip off the
first part of the file name and apply
Setting the <parameter>-p1</parameter> option would strip off the
first part of the file name and apply
the patch instead to <filename>programs/clock/main.c </filename>.
The <parameter>-p1</parameter> option would be useful if you named
your top level wine directory differently to the person who sent you
the patch. For the <parameter>-p1</parameter> option
The <parameter>-p1</parameter> option would be useful if you named
your top level wine directory differently to the person who sent you
the patch. For the <parameter>-p1</parameter> option
<command>patch</command> should be run from the top level wine directory.
</para>

View File

@ -7,7 +7,7 @@
<para>
Written by &name-ove-kaaven; <email>&email-ove-kaaven;</email>
</para>
<sect2>
@ -72,7 +72,8 @@
paths, class IDs, and more; it must be installed before most
<filename>INSTALL.EXE</filename> or
<filename>SETUP.EXE</filename> applications will work. The
registry is covered in more detail in an earlier article.
registry is covered in more detail <link
linkend="registry">here</link>.
</para>
</sect2>
@ -134,9 +135,9 @@ C:\ Root directory of primary disk drive
file existence to determine whether a particular feature
(such as Winsock and its TCP/IP networking) is available. If
this is a problem for you, you can create empty files in the
<filename>system</filename> directory to make the
application think it's there, and Wine's built-in DLL will
be loaded when the application actually asks for it.
configured <filename>c:\windows\system</filename> directory
to make the application think it's there, and Wine's built-in DLL
will be loaded when the application actually asks for it.
(Unfortunately, <filename>tools/wineinstall</filename> does
not create such empty files itself.)
</para>
@ -212,7 +213,7 @@ C:\ Root directory of primary disk drive
Use <filename>tools/wineinstall</filename> to compile Wine
and install the default registry. Or if you prefer to do
it yourself, compile <filename>programs/regapi</filename>,
and run:
and run:
</para>
<screen>
<userinput>programs/regapi/regapi setValue &lt; winedefault.reg</userinput>
@ -242,10 +243,10 @@ C:\ Root directory of primary disk drive
<listitem>
<para>
Run the application with <parameter>--debugmsg
+module,+file</parameter> to find out which files are
+loaddll</parameter> to find out which files are
needed. Copy the required DLLs one by one to the
<filename>C:\windows\system</filename> directory. Do not
copy KERNEL/KERNEL32, GDI/GDI32, or USER/USER32. These
copy KERNEL/KERNEL32, GDI/GDI32, USER/USER32 or NTDLL. These
implement the core functionality of the Windows API, and
the Wine internal versions must be used.
</para>
@ -519,7 +520,7 @@ drwxrwxr-x 41 sle sle 16384 Dec 30 1998 windows</computeroutput>
<filename>AnApp</filename> directories while only root has
write access to all other directories.
</para>
</sect2>
</sect2>
</sect1>
<sect1 id="scsi-support">
@ -556,8 +557,8 @@ drwxrwxr-x 41 sle sle 16384 Dec 30 1998 windows</computeroutput>
if you're running as root, all bets are off).
</para>
<para>
So please make sure that <emphasis>all</emphasis> SCSI devices not needed by the program
have their permissions set as restricted as possible !
So please make sure that <emphasis>all</emphasis> SCSI devices not needed by the program
have their permissions set as restricted as possible !
</para>
<para>

View File

@ -48,7 +48,7 @@
</footnote>
However, Wine makes it possible to run native Windows
applications alongside native Linux applications on a Linux
(or Solaris) system. You can share desktop space between MS
(or BSD or Solaris) system. You can share desktop space between MS
Word and GnuCash, overlapping their windows, iconizing them,
and even running them from the same launcher.
</para>
@ -98,6 +98,21 @@
<para>
</para>
</sect2>
<sect2>
<title>Burning questions and comments</title>
<para>
If during reading this document there is something you
can't figure out, or think could be explained better, or
that should have been included, please immediately mail to
&name-web-admin; <email>&email-web-admin</email> or
post a bug report at the
<ulink url="http://bugs.winehq.com/">Wine Bugzilla</ulink> to
let us know how this document can be improved.
Remember, Open Source is
"free as in free speech, not as in free beer":
it can only work in case of very active involvement of its users !
</para>
</sect2>
</sect1>
<!-- *** Not really useful as is, but may be able to recycle this elsewhere...
@ -142,7 +157,7 @@
<listitem>
<para>
a computer ;-) Wine: only PCs >= i386 are supported at
the moment. Winelib: other platforms might be
the moment. Winelib: other platforms may be
supported, but can be tricky.
</para>
</listitem>
@ -155,7 +170,7 @@
<listitem>
<para>
>= 16MB of RAM. Everything below is pretty much
unusable. >= 64 MB is needed for a "good" execution.
unusable. >= 64 MB is needed for "good" execution.
</para>
</listitem>
<listitem>
@ -163,7 +178,7 @@
an X11 window system (XFree86 etc.). Wine is prepared
for other graphics display drivers, but writing
support is not too easy. The text console display
driver is nearly usable.
driver (ttydrv) is nearly usable.
</para>
</listitem>
</itemizedlist>
@ -181,7 +196,7 @@
<itemizedlist>
<listitem>
<para>
Support for executing DOS, Win 3.x and Win9x/NT/Win2000
Support for executing DOS, Win 3.x and Win9x/NT/Win2000/XP
programs (most of Win32's controls are supported)
</para>
</listitem>

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
<!-- Wine Packaging guidelines. This is a rough outline only,
<!-- Wine Packaging guidelines. This is a rough outline only,
and much of this was up for open debate on wine-devel. -->
<chapter id="pkg-preface"> <title>Preface</title>
<sect1 id="pkg-authors"> <title>Authors</title>
@ -115,7 +115,7 @@
<para>
It expresses the basic principles that the
Wine developers have agreed should be
used when building Wine.
used when building Wine.
It also attempts to highlight the areas
where there are different approaches
to packaging Wine, so that the packager
@ -152,11 +152,11 @@
<listitem>
<para>
Comply with Filesystem Hierarchy Standard
Comply with Filesystem Hierarchy Standard
</para>
<para>
A Wine installation should, as much as possible, comply
with the
with the
<ulink url="http://www.pathname.com/fhs/">FHS standard</ulink>.
</para>
</listitem>
@ -167,7 +167,7 @@
</para>
<para>
None of the flexibility built into Wine should
be hidden from the end user.
be hidden from the end user.
</para>
</listitem>
@ -766,8 +766,8 @@
</para>
<para>
At the time of this writing, I do not have a
definitive list of documentation files to
be installed. However, they do include
definitive list of documentation files to
be installed. However, they do include
the HTML files generated from the SGML in the Wine CVS tree.
</para>
</listitem>
@ -813,6 +813,8 @@
This is the global Wine configuration file. It
is only used if the user running Wine has
no local configuration file.
Global wine configuration is currently not possible;
this might get reenabled at some time.
</para>
<para>
Some packagers feel that this file should not
@ -866,7 +868,7 @@
.dat files from a Windows partion are loaded,
then global registry settings from <link linkend=ETCDIR endterm=etcdir.id></link>,
and then finally local registry settings are
loaded from <link linkend=WINECONFDIR endterm=wineconfdir.id></link>
loaded from <link linkend=WINECONFDIR endterm=wineconfdir.id></link>
. As each set are loaded,
they can override the prior entries. Thus,
the local registry files take precedence.
@ -884,7 +886,7 @@
<varlistentry><term><filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/system.reg</filename></term>
<listitem>
<para>
This file contains the user's local copy of
This file contains the user's local copy of
the HKEY_LOCAL_MACHINE registry hive. In general
use, it will contain only changes made to the
default registry values.
@ -895,7 +897,7 @@
<varlistentry><term><filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/user.reg</filename></term>
<listitem>
<para>
This file contains the user's local copy of
This file contains the user's local copy of
the HKEY_CURRENT_USER registry hive. In
general use, it will contain only changes made to the
default registry values.
@ -906,7 +908,7 @@
<varlistentry><term><filename><link linkend=WINECONFDIR endterm=wineconfdir.id></link>/userdef.reg</filename></term>
<listitem>
<para>
This file contains the user's local copy of
This file contains the user's local copy of
the HKEY_USERS\.Default registry hive. In
general use, it will contain only changes made to the
default registry values.
@ -1007,7 +1009,7 @@
to the end user, so that they can intelligently
choose their configuration.
</para>
<orderedlist>
@ -1039,10 +1041,10 @@
</listitem>
<listitem>
<para>
<para>
Windows Dynamic Link Libraries ([WINDOWSDIR]/system32/*.dll)
</para>
<para>
<para>
Wine has the ability to use the actual Windows DLL files
when running an application. An end user can configure
Wine so that Wine uses some or all of these DLL files
@ -1060,7 +1062,7 @@
<para>
There has recently been a lot of discussion on the Wine
development mailing list about the best way to
development mailing list about the best way to
build Wine packages.
</para>
<para>
@ -1082,7 +1084,7 @@
</para>
<para>
At this point, there is no consensus
amongst the wine-devel community on this subject.
amongst the wine-devel community on this subject.
</para>
</sect1>
@ -1096,7 +1098,7 @@
then :
</para>
<orderedlist>
<listitem>
<para>
all <link linkend=binfiles>binary files</link> go into
@ -1155,7 +1157,7 @@
check again tomorrow).
</para>
</sect2>
</sect1>
<sect1 id="pkg-whattomake"><title>What files to create</title>
@ -1186,7 +1188,7 @@
<para>
This approach has the benefit of simplicity in that all
Wine files are either stored under /opt/wine or under
~/.wine. Further, there is only ever one Wine
~/.wine. Further, there is only ever one Wine
configuration file.
</para>
<para>
@ -1225,7 +1227,7 @@
<para>
A flaw with this approach, however, is it doesn't
give the user an obvious way to choose not to
use a Windows partition.
use a Windows partition.
</para>
</listitem>
@ -1626,7 +1628,7 @@ Serial=87654321
Device=/dev/fd0
Filesystem=win95
;
;
; Comment in ONLY if you have a second floppy or the automounter hangs
; for 5 minutes.
;
@ -1640,12 +1642,12 @@ Filesystem=win95
;
; Drive 'C' links to the user's homedirectory.
;
; Drive 'C' links to the user's homedirectory.
;
; This must point to a writeable directory structure (not your readonly
; mounted DOS partitions!) since programs want to dump stuff into
; "Program Files/" "Programme/", "windows/", "windows/system/" etc.
;
;
; The basic structure is set up using the config script.
;
[Drive C]
@ -1656,7 +1658,7 @@ Filesystem=win95
;
; /tmp/ directory
;
;
; The temp drive (and directory) points to /tmp/. Windows programs fill it
; with junk, so it is approbiate.
;
@ -1668,9 +1670,9 @@ Filesystem=win95
;
; 'U'ser homedirectory
;
;
; Just in case you want C:\ elsewhere.
;
;
[Drive U]
Path=${HOME}
Type=hd
@ -1679,14 +1681,14 @@ Filesystem=win95
;
; CD-'R'OM drive (automounted)
;
;
; The default cdrom drive.
;
; If an application (or game) wants a specific CD-ROM you might have to
; temporary change the Label to the one of the CD itself.
;
; How to read them is described in /usr/doc/wine-cvs-xxxxx/cdrom-labels.
;
;
[Drive R]
Path=/auto/cdrom
Type=cdrom
@ -1694,9 +1696,9 @@ Label=CD-Rom
Filesystem=win95
;
; The drive where the old windows installation resides (it points to the
; The drive where the old windows installation resides (it points to the
; windows/ subdirectory).
;
;
; The Path is modified by the winesetup script.
;
[Drive W]
@ -1707,7 +1709,7 @@ Filesystem=win95
;
; The UNIX Root directory, so all other programs and directories are reachable.
;
; type network is used to tell programs to not write here.
; type network is used to tell programs to not write here.
;
[Drive Z]
Path=/
@ -1719,7 +1721,7 @@ Filesystem=win95
; Standard Windows path entries. WINE will not work if they are incorrect.
;
[wine]
;
;
; The windows/ directory. It must be writeable, for programs write into it.
;
Windows=c:\windows
@ -1749,7 +1751,7 @@ SymbolTableFile=./wine.sym
# &lt;wineconf&gt;
;
;
; Dll loadorder defaults. No need to modify.
;
[DllDefaults]
@ -1774,7 +1776,7 @@ winsock = wsock32
;
; What type of dll to use in their respective loadorder.
;
;
[DllOverrides]
kernel32, gdi32, user32 = builtin
kernel, gdi, user = builtin
@ -1807,7 +1809,7 @@ AllocSystemColors=100
;;
; Font specification. You usually do not need to edit this section.
;
;
; Read documentation/fonts before adding aliases
;
[fonts]
@ -1820,7 +1822,7 @@ Default = -adobe-times-
;
; serial ports used by "COM1" "COM2" "COM3" "COM4". Useful for applications
; that try to access serial ports.
;
;
[serialports]
Com1=/dev/ttyS0
Com2=/dev/ttyS1
@ -1828,7 +1830,7 @@ Com3=/dev/modem,38400
Com4=/dev/modem
;
; parallel port(s) used by "LPT1" etc. Useful for applications that try to
; parallel port(s) used by "LPT1" etc. Useful for applications that try to
; access these ports.
;
[parallelports]
@ -1843,7 +1845,7 @@ LPT1:=|lpr
LPT2:=|gs -sDEVICE=bj200 -sOutputFile=/tmp/fred -q -
LPT3:=/dev/lp3
;
;
; Allow port access to WINE started by the root user. Useful for some
; supported devices, but it can make the system unstable.
; Read /usr/doc/wine-cvs-xxxxx/ioport-trace-hints.
@ -1914,7 +1916,7 @@ Startup=
wineconf/wineinstall.
</para>
<para>
Currently, winesetup duplicates all of the code contained
Currently, winesetup duplicates all of the code contained
in wineconf.
</para>
<para>

View File

@ -59,8 +59,7 @@
printer=on
</screen>
<para>
to the [wine] section of <filename>wine.conf</filename> (or
<filename>~/.wine/config</filename>). This lets
to the [wine] section of the wine config file. This lets
<function>CreateDC</function> proceed if its driver argument is a 16
bit driver. You will probably also need to add
</para>
@ -77,7 +76,7 @@ printer=on
<title>Spooling</title>
<para>
Spooling is rather primitive. The [spooler] section of
<filename>wine.conf</filename> maps a port (e.g.
the wine config file maps a port (e.g.
<systemitem>LPT1:</systemitem>) to a file or a command via a pipe. For
example the following lines
</para>
@ -95,7 +94,7 @@ printer=on
<para>
There are now also virtual spool queues called
<systemitem>LPR:printername</systemitem>, which send the data
to <command>lpr -Pprintername</command>. You do not need to
to <command>lpr -Pprintername</command>. You do not need to
specify those in the config file, they are handled automatically by
<filename>dlls/gdi/printdrv.c</filename>.
</para>
@ -133,7 +132,7 @@ printer=on
<title>Installation of LPR /etc/printcap based printers</title>
<para>
If your system is not yet using CUPS, it probably uses LPRng
or a LPR based system with configuration based on /etc/printcap.
or a LPR based system with configuration based on <filename>/etc/printcap</filename>.
</para>
<para>
If it does, your printers in <filename>/etc/printcap</filename>
@ -141,7 +140,7 @@ printer=on
printers and also configured mostly automatic.
</para>
<para>
Since WINE cannot find out what type of printer this is, you
Since WINE cannot find out what type of printer this is, you
need to specify a PPD file in the [ppd] section of
<filename>~/.wine/config</filename>. Either use the shortcut
name and make the entry look like:
@ -238,7 +237,7 @@ printer=on
</para>
<para>
Note that you need not set <literal>printer=on</literal> in
the [wine] section of <filename>wine.conf</filename>, this
the [wine] section of the wine config file, this
enables printing via external printer drivers and does not
affect the builtin PostScript driver.
</para>

View File

@ -20,7 +20,7 @@
<sect2>
<title>Registry structure</title>
<para>
The Windows registry is an elaborate tree structure, and not
even most Windows programmers are fully aware of how the
@ -36,23 +36,23 @@
<term>HKEY_LOCAL_MACHINE</term>
<listitem>
<para>
This fundamental root key (in win9x, stored in the
This fundamental root key (in win9x it's stored in the
hidden file <filename>system.dat</filename>) contains
everything pertaining to the current Windows
installation.
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>HKEY_USERS</term>
<listitem>
<para>
This fundamental root key (in win9x, stored in the
This fundamental root key (in win9x it's stored in the
hidden file <filename>user.dat</filename>) contains
configuration data for every user of the installation.
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>HKEY_CLASSES_ROOT</term>
<listitem>
@ -62,7 +62,7 @@
associations, OLE document handlers, and COM classes.
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>HKEY_CURRENT_USER</term>
<listitem>
@ -77,7 +77,7 @@
<sect2>
<title>Using a Windows registry</title>
<para>
If you point Wine at an existing MS Windows installation (by
setting the appropriate directories in
@ -102,7 +102,7 @@
<sect2>
<title>Wine registry data files</title>
<para>
In the user's home directory, there is a subdirectory named
<filename>.wine</filename>, where Wine will try to save its
@ -117,7 +117,7 @@
This file contains HKEY_LOCAL_MACHINE.
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term><filename>user.reg</filename></term>
<listitem>
@ -125,7 +125,7 @@
This file contains HKEY_CURRENT_USER.
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term><filename>userdef.reg</filename></term>
<listitem>
@ -134,7 +134,7 @@
user settings).
</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term><filename>wine.userreg</filename></term>
<listitem>
@ -149,9 +149,12 @@
<para>
All of these files are human-readable text files, so unlike
Windows, you can actually use an ordinary text editor on them
if you must.
if you want (make sure you don't have Wine running when modifying
them, otherwise your changes will be discarded).
</para>
<para>
FIXME: global config currently not implemented.
In addition to these files, Wine can also optionally load from
global registry files residing in the same directory as the
global <filename>wine.conf</filename> (i.e.
@ -177,7 +180,7 @@
<sect2>
<title>System administration</title>
<para>
With the above file structure, it is possible for a system
administrator to configure the system so that a system Wine
@ -247,8 +250,8 @@ ln -sf /usr/local/etc/wine.userreg wine.userreg
<title>The [registry] section</title>
<para>
With the above information fresh in mind, let's look at the
<filename>wine.conf</filename>/<filename>~/.wine/config</filename>
With the above information fresh in mind, let's look at the
<filename>wine.conf</filename> / <filename>~/.wine/config</filename>
options for handling the registry.
</para>
@ -295,12 +298,17 @@ ln -sf /usr/local/etc/wine.userreg wine.userreg
</listitem>
</varlistentry>
<varlistentry>
<term>UseNewFormat</term>
<term>SaveOnlyUpdatedKeys</term>
<listitem>
<para>
This option is obsolete. Wine now always uses the new
format; support for the old format was removed a while
ago.
Controls whether the entire registry is saved to the
user's registry files, or only subkeys the user have
actually changed. Considering that the user's registry
will override any global registry files and Windows
registry files, it usually makes sense to only save
user-modified subkeys; that way, changes to the rest of
the global or Windows registries will still affect the
user.
</para>
</listitem>
</varlistentry>
@ -316,17 +324,12 @@ ln -sf /usr/local/etc/wine.userreg wine.userreg
</listitem>
</varlistentry>
<varlistentry>
<term>SaveOnlyUpdatedKeys</term>
<term>UseNewFormat</term>
<listitem>
<para>
Controls whether the entire registry is saved to the
user's registry files, or only subkeys the user have
actually changed. Considering that the user's registry
will override any global registry files and Windows
registry files, it usually makes sense to only save
user-modified subkeys; that way, changes to the rest of
the global or Windows registries will still affect the
user.
This option is obsolete. Wine now always uses the new
format; support for the old format was removed a while
ago.
</para>
</listitem>
</varlistentry>

View File

@ -53,7 +53,7 @@ Options:
</para>
<screen>
[wine]
"Path"="c:\windows;c:\windows\system;e:\;e:\test;f:\"
"Path"="c:\\windows;c:\\windows\\system;e:\\;e:\\test;f:\\"
</screen>
<para>
You could run the file
@ -67,18 +67,20 @@ Options:
<filename>c:\myapps\foo.exe</filename> with this command:
</para>
<screen>
<prompt>$</prompt> <userinput>wine c:\myapps\foo.exe</userinput>
<prompt>$</prompt> <userinput>wine c:\\myapps\\foo.exe</userinput>
</screen>
<para>
(note the backslash-escaped "\" !)
</para>
<para>
If you want to run a console program (aka a CUI executable), use
<command>wineconsole</command> instead of <command>wine</command>
to start it. It will display the program in a separate Window
(this requires X11 to be run). If you don't, you'll still be able
to run able your program, in the Unix console were you're started
your program, but with very limited capacities (so, your program
might work, but your mileage may vary). This shall be improved
in the future.
to run your program directly in the Unix console where you started it,
but with very limited capacities (so your program might work,
but your mileage may vary). This shall be improved in the future.
</para>
</sect1>
@ -89,7 +91,7 @@ Options:
<title>--debugmsg [channels]</title>
<para>
Wine isn't perfect, and many Windows applications still
don't run without bugs under Wine (but then, many of them
don't run without bugs under Wine (but then, a lot of programs
don't run without bugs under native Windows either!). To
make it easier for people to track down the causes behind
each bug, Wine provides a number of <firstterm>debug
@ -155,7 +157,7 @@ Options:
</screen>
<para>
Here is a master list of all the debug channels and classes
in Wine. More channels might be added to (or subtracted
in Wine. More channels will be added to (or subtracted
from) later versions.
</para>
@ -245,21 +247,27 @@ winspool</><entry>wnet</><entry>x11</>
<sect2>
<title>--dll</title>
<para>
Specifies whether to load the builtin or the native (if
available) version of a DLL.
Example:
<screen>
<prompt>$</prompt> <userinput>wine --dll setupx=n foo.exe</userinput>
</screen>
See the <link linkend="dlls">DLL chapter</link> for more details.
</para>
</sect2>
<sect2>
<title>--help</title>
<para>
Shows a small command line help page.
</para>
</sect2>
<sect2>
<title>--version</title>
<para>
Shows the Wine version string. Useful to verify your installation.
</para>
</sect2>
</sect1>

View File

@ -4,39 +4,39 @@
<sect1 id="anon">
<title id="anon.title">Anonymous unions/structs</title>
<para>
Anonymous structs and unions support depends heavily on the compiler.
The best support is provided by gcc/g++ 2.96 and later. But these
versions of gcc come from the development branch so you may want to
hold off before using them in production. g++ 2.95 supports anonymous
unions but not anonymous structs and gcc 2.95 supports neither. Older
Anonymous structs and unions support depends heavily on the compiler.
The best support is provided by gcc/g++ 2.96 and later. But these
versions of gcc come from the development branch so you may want to
hold off before using them in production. g++ 2.95 supports anonymous
unions but not anonymous structs and gcc 2.95 supports neither. Older
versions of gcc/g++ have no support for either.
since it is anonymous unions that are the most frequent in the
since it is anonymous unions that are the most frequent in the
windows headers, you should at least try to use gcc/g++ 2.95.
</para>
<para>
But you are stuck with a compiler that does not support anonymous
structs/unions all is not lost. The Wine headers should detect this
automatically and define <varname>NONAMELESSUNION</varname> /
<varname>NONAMELESSSTRUCT</varname>. Then any anonymous union will
be given a name
<literal>u</literal> or <literal>u2</literal>, <literal>u3</literal>,
etc. to avoid name clashes. You will then have to modify your code to
But you are stuck with a compiler that does not support anonymous
structs/unions all is not lost. The Wine headers should detect this
automatically and define <varname>NONAMELESSUNION</varname> /
<varname>NONAMELESSSTRUCT</varname>. Then any anonymous union will
be given a name
<literal>u</literal> or <literal>u2</literal>, <literal>u3</literal>,
etc. to avoid name clashes. You will then have to modify your code to
include those names where appropriate.
</para>
<para>
The name that Wine adds to anonymous unions should match that used
by the Windows headers. So all you have to do to compile your
modified code in Windows is to explicitly define the
<varname>NONAMELESSUNION</varname> macro. Note that it would be wise
The name that Wine adds to anonymous unions should match that used
by the Windows headers. So all you have to do to compile your
modified code in Windows is to explicitly define the
<varname>NONAMELESSUNION</varname> macro. Note that it would be wise
to also explicitly define this macro on in your Unix makefile
(<filename>Makefile.in</filename>) to make sure your code will
(<filename>Makefile.in</filename>) to make sure your code will
compile even if the compiler does support anonymous unions.
</para>
<para>
Things are not as nice when dealing with anonymous structs.
Unfortunately the Windows headers make no provisions for compilers
that do not support anonymous structs. So you will need to be more
subtle when modifying your code if you still want it to compile in
Things are not as nice when dealing with anonymous structs.
Unfortunately the Windows headers make no provisions for compilers
that do not support anonymous structs. So you will need to be more
subtle when modifying your code if you still want it to compile in
Windows. Here's a way to do it:
</para>
<programlisting>
@ -55,10 +55,10 @@ printf("Processor architecture=%d\n",si ANONS .wProcessorArchitecture);
}
</programlisting>
<para>
You may put the <literal>#define</literal> directive directly in the
source if only few files are impacted. Otherwise it's probably best
to put it in one of your project's widely used headers.
Fortunately usage of an anonymous struct is much rarer than usage of
You may put the <literal>#define</literal> directive directly in the
source if only few files are impacted. Otherwise it's probably best
to put it in one of your project's widely used headers.
Fortunately usage of an anonymous struct is much rarer than usage of
an anonymous union so these modifications should not be too much work.
</para>
</sect1>
@ -286,34 +286,34 @@ printf("Processor architecture=%d\n",si ANONS .wProcessorArchitecture);
<sect1 id="init-problems">
<title id="init-problems.title">Initialization problems</title>
<para>
Initialization problems occur when the application calls the Win32 API
Initialization problems occur when the application calls the Win32 API
before Winelib has been initialized. How can this happen?
</para>
<para>
Winelib is initialized by the application's <function>main</function>
before it calls the regular <function>WinMain</function>. But, in C++,
the constructors of static class variables are called before the
<function>main</function> (by the module's initializer). So if such
a constructor makes calls to the Win32 API, Winelib will not be
initialized at the time of the call and you may get a crash. This
problem is much more frequent in C++ because of these class
constructors but could also, at least in theory, happen in C if you
were to specify an initializer making calls to Winelib. But of
Winelib is initialized by the application's <function>main</function>
before it calls the regular <function>WinMain</function>. But, in C++,
the constructors of static class variables are called before the
<function>main</function> (by the module's initializer). So if such
a constructor makes calls to the Win32 API, Winelib will not be
initialized at the time of the call and you may get a crash. This
problem is much more frequent in C++ because of these class
constructors but could also, at least in theory, happen in C if you
were to specify an initializer making calls to Winelib. But of
course, now that you are aware of this problem you won't do it :-).
</para>
<para>
Further compounding the problem is the fact that Linux's (GNU's?)
current dynamic library loader does not call the module
initializers in their dependency order. So even if Winelib were to
have its own initializer there would be no garantee that it would be
called before the initializer of the library containing this static
variable. Finally even if the variable is in a library that your
application links with, that library's initializer may be called
Further compounding the problem is the fact that Linux's (GNU's?)
current dynamic library loader does not call the module
initializers in their dependency order. So even if Winelib were to
have its own initializer there would be no garantee that it would be
called before the initializer of the library containing this static
variable. Finally even if the variable is in a library that your
application links with, that library's initializer may be called
before Winelib has been initialized. One such library is the MFC.
</para>
<para>
The current workaround is to move all the application's code in a
library and to use a small Winelib application to dynamically load
The current workaround is to move all the application's code in a
library and to use a small Winelib application to dynamically load
this library. Tus the initialization sequence becomes:
</para>
<itemizedlist>
@ -329,34 +329,34 @@ printf("Processor architecture=%d\n",si ANONS .wProcessorArchitecture);
</listitem>
<listitem>
<para>
its <function>main</function> is run. Its first task is to
its <function>main</function> is run. Its first task is to
initialize Winelib.
</para>
</listitem>
<listitem>
<para>
it then loads the application's main library, plus all its
it then loads the application's main library, plus all its
dependent libraries.
</para>
</listitem>
<listitem>
<para>
which triggers the execution of all these libraries initializers
in some unknown order. But all is fine because Winelib has
which triggers the execution of all these libraries initializers
in some unknown order. But all is fine because Winelib has
already been initialized anyway.
</para>
</listitem>
<listitem>
<para>
finally the main function calls the <function>WinMain</function>
finally the main function calls the <function>WinMain</function>
of the application's library.
</para>
</listitem>
</itemizedlist>
<para>
This may sound complex by Winemaker makes it simple. Just specify
<option>--wrap</option> or <option>--mfc</option> on the command line
and it will adapt its makefiles to build the wrapper and the
This may sound complex but Winemaker makes it simple. Just specify
<option>--wrap</option> or <option>--mfc</option> on the command line
and it will adapt its makefiles to build the wrapper and the
application library.
</para>
</sect1>
@ -364,7 +364,7 @@ printf("Processor architecture=%d\n",si ANONS .wProcessorArchitecture);
<sect1 id="com-support">
<title id="com-support.title">VC's native COM support</title>
<para>
don't use it,
don't use it,
guide on how to replace it with normal C++ code (yes, how???):
extracting a .h and .lib from a COM dll
Can '-fno-rtti' be of some use or even required?
@ -382,7 +382,7 @@ printf("Processor architecture=%d\n",si ANONS .wProcessorArchitecture);
<sect1 id="others">
<title id="others.title">Others</title>
<para>
-fpermissive and -fno-for-scope,
-fpermissive and -fno-for-scope,
maybe other options
</para>
</sect1>