Check for NULL in lstrcpy* (Windows uses real exception handlers).
[wine.git] / documentation / wine.man
blob5304992c4004e16a7417f1fa4ed1eba427b51fbf
1 .\" -*- nroff -*-
2 .TH WINE 1 "December 30, 1998" "Version 981211" "Windows On Unix"
3 .SH NAME
4 wine \- run Windows programs on Unix
5 .SH SYNOPSIS
6 .BI "wine " "[wine_options] " "program1 " "[program2 ... ]"
7 .PP
8 For instructions on passing arguments to Windows programs, please see the 
9 .B
10 PROGRAM/ARGUMENTS
11 section of the man page.
12 .SH DESCRIPTION
13 .B wine
14 .I program
15 loads and runs the given program, where the program is a DOS, Windows 3.x,
16 or Win32 executable.
17 .PP
18 .B wine 
19 currently runs a growing list of applications written for both Win3.1 and 
20 Win95.  Older, simpler applications work better than newer, more complex 
21 ones.  A large percentage of the API has been implemented, although there
22 are still several major pieces of work left to do.
23 .SH REQUIREMENTS
24 At present, 
25 .B wine
26 will run under any Linux kernel more recent than 0.99.13, or
27 under recent releases of NetBSD/i386, FreeBSD and OpenBSD/i386. Some bugs
28 were fixed and additional features were added late in the Linux 2.0.x 
29 series, so if you have an old Linux kernel, you may want to upgrade to the
30 latest 2.0.x release. If you have FreeBSD, make sure you have the USER_LDT,
31 SYSVSEM, and SYSVMSG options turned on in your kernel. 
32 .PP
33 The current support for multithreaded applications relies on the 
34 .BR clone (2)
35 system call, which is currently available only on Linux systems running
36 libc6 (aka glibc2).
37 .PP
38 .B X
39 must be installed.  To use Wine's support for multithreaded applications,
40 your X libraries must be reentrant.  If you have libc6 (glibc2), or you 
41 compiled the X libraries yourself, they were probably compiled with the 
42 reentrant option enabled.  
43 .PP
44 .B libXpm
45 must be installed.  If you're using Red Hat, make sure the following
46 packages are installed: XFree86-devel, xpm, and xpm-devel. If you're
47 using Debian, the packages you need are xpm4g and xpm4g-dev. If you 
48 have some other distribution, please send a list of packages required
49 to the address listed in the 
51 BUGS
52 section to get it included in this man page.
53 .PP
54 .B gcc
55 2.7.x or later is required to build
56 .B wine.
57 Versions earlier than 2.7.2.3 may have problems when certain files are
58 compiled with optimization.
60 pgcc
61 currently doesn't work with wine.  The cause of this problem is unknown. 
62 .PP
63 .B flex
64 and 
65 .B yacc
66 are required.  Bison can be used in replace of yacc. If you have Redhat,
67 make sure the bison and flex packages are installed.
68 .SH INSTALLATION
69 To install 
70 .B Wine,
71 run "./configure" in the top-level directory of the source, which will 
72 detect your specific setup and create the Makefiles.  You can run 
73 "./configure --help" to see the available configuration options.  Then do 
74 "make depend; make" to build the
75 .B wine
76 executable, and then "make install" to install it. By default,
77 .B wine
78 is installed in the /usr/local/ heirarchy; you can specify a different path with
79 the --prefix option when running
80 .B configure.
81 .PP
82 For more information, see the 
83 .I README
84 file contained in the source distribution.
85 .SH OPTIONS
86 .TP
87 .I -backingstore
88 Turn on backing store
89 .TP
90 .I -config filename
91 Use the named configuration file rather than the default
92 (/usr/local/etc/wine.conf or ~/.winerc).
93 .TP
94 .I -debug
95 Enter the debugger before starting application
96 .TP
97 .I -debugmsg [xxx]#name[,[xxx1]#name1][,<+|->relay=yyy1[:yyy2]]
98 Turn debugging messages on or off.  
99 .RS +7
101 xxx is optional and can be one of the following: 
102 .I err, 
103 .I warn, 
104 .I fixme, 
105 or 
106 .I trace. 
107 If xxx is not specified, all debugging messages for the specified
108 channel are turned on.  Each channel will print messages about a particular
109 component of Wine.  # is required and can be either + or -.  Note that 
110 there is not a space after the comma between names. yyy are either the
111 name of a whole DLL or a single API entry by Name you either
112 want to include or exclude from the relay listing. These names must be in
113 the case as names used in the relaylisting. You can do the same for snoop.
115 For instance:
117 .I -debugmsg warn+dll,+heap
118 will turn on DLL warning messages and all heap messages.  
120 .I -debugmsg fixme-all,warn+cursor,+relay
121 will turn off all FIXME messages, turn on cursor warning messages, and turn
122 on all relay messages (API calls).
123 .br 
124 .I -debugmsg -relay=LeaveCriticalSection:EnterCriticalSection
125 will turn on all relay messages except for LeaveCriticalSection and
126 EnterCriticalSection.
127 .br 
128 .I -debugmsg +relay=ADVAPI32
129 will only turn on relay messages into the ADVAPI32 code.
131 The full list of names is: all, accel, advapi, animate, aspi, atom, 
132 bitblt, bitmap, caret, cd, cdaudio, class, clipboard, clipping, combo, 
133 comboex, comm, commctrl, commdlg, console, crtdll, cursor, datetime, dc, 
134 dde, ddeml, ddraw, debug, dialog, dinput, dll, dosfs, dosmem, dplay, driver, 
135 dsound, edit, event, exec, file, fixup, font, gdi, global, graphics, header, 
136 heap, hook, hotkey, icon, imagehlp, imagelist, imm, int, int10, int16, int17, 
137 int19, int21, int31, io, ipaddress, key, keyboard, ldt, listbox, listview, 
138 local, mci, mcianim, mciwave, mdi, menu, message, metafile, midi, mmaux, mmio, 
139 mmsys, mmtime, module, monthcal, mpr, msacm, msg, nativefont, nonclient, ntdll, 
140 ole, pager, palette, pidl, print, process, profile, progress, prop, psapi, 
141 psdrv, rebar, reg, region, relay, resource, s, scroll, security, segment, 
142 selector, sem, sendmsg, server, shell, shm, snoop, sound, static, statusbar, 
143 stress, string, syscolor, system, tab, task, text, thread, thunk, timer, 
144 toolbar, toolhelp, tooltips, trackbar, treeview, tweak, uitools, updown, ver, 
145 virtual, vxd, win, win16drv, win32, wing, winsock, wnet, x11, x11drv.
147 For more information on debugging messages, see the file 
148 .I documentation/debug-msgs
149 in the source distribution.
152 .I -depth n
153 Change the depth to use for multiple-depth screens
155 .I -desktop geom
156 Use a desktop window of the given geometry
158 .I -display name
159 Use the specified display
161 .I -dll name
162 Enables/disables built-in DLL's - starting wine with
163 .I -dll -commdlg
164 is probably a good idea.
165 The full list of DLLs modifiable by this is:
166 ADVAPI32, AVIFILE, COMCTL32, COMDLG32, COMM, COMMDLG, COMPOBJ, CRTDLL, 
167 DCIMAN32, DDEML, DDRAW, DINPUT, DISPLAY, DPLAY, DPLAYX, DSOUND, GDI, GDI32, 
168 IMAGEHLP, IMM32, KEYBOARD, LZ32, LZEXPAND, MMSYSTEM, MOUSE, MPR, MSACM, 
169 MSACM32, MSNET32, MSVFW32, MSVIDEO, OLE2, OLE32, OLE2CONV, OLE2DISP, OLE2NLS, 
170 OLE2PROX, OLE2THK, OLEAUT32, OLECLI, OLECLI32, OLEDLG, OLESVR, OLESVR32, 
171 PSAPI, RASAPI16, RASAPI32, SHELL, SHELL32, SOUND, STORAGE, STRESS, SYSTEM,
172 TAPI32, TOOLHELP, TYPELIB, USER, USER32, VER, VERSION, W32SKRNL, W32SYS, 
173 WIN32S16, WIN87EM, WINASPI, WINDEBUG, WINEPS, WINMM, WING, WINSOCK, WINSPOOL, 
174 WNASPI32, WOW32, WPROCS, WSOCK32
176 .I -failreadonly
177 Read only files may not be opened in write mode (the default is to
178 allow opening read-only files for writing, because most Windows
179 programs always request read-write access, even on CD-ROM drives...).
181 .I -fixedmap
182 Use a "standard" color map.
184 .I -iconic
185 Start as an icon
187 .I -language xx
188 Set the language to
189 .I xx
190 (one of En, Es, De, No, Fr, Fi, Da, Cz, Eo, It, Ko, Hu, Pl, Po, Sw, Ca)
192 .I -managed
193 Create each top-level window as a properly managed X window
195 .I -mode modename
196 Determines the mode in which
197 .B wine
198 is started. Possible mode names are
199 .I standard
201 .I enhanced.
202 Enhanced mode is the default (when no -mode option is specified).
204 .I -name name
205 Set the application name
207 .I -privatemap
208 Use a private color map
210 .I -synchronous
211 Turn on synchronous display mode
213 .I -winver version
214 Specify which Windows version WINE should imitate.
215 Possible arguments are: win31, win95, nt351, and nt40.
216 .PD 1
217 .SH PROGRAM/ARGUMENTS
218 The program name may be specified in DOS format (
220 C:\\WINDOWS\\SOL.EXE)
221 or in Unix format (
222 .I /msdos/windows/sol.exe
223 ).  The program being executed may be passed arguments by adding them on 
224 to the end of the command line invoking
225 .B wine
226 (such as: wine "notepad C:\\TEMP\\README.TXT").  Note that
227 the program name and its arguments 
228 .I must
229 be passed as a single parameter, which is usually accomplished by placing
230 them together in quotation marks.  Multiple applications may be started
231 by placing all of them on the command line (such as: wine notepad clock).
232 .SH CONFIGURATION FILE
233 .B wine
234 expects a configuration file (
235 .I /usr/local/etc/wine.conf
236 ), which should
237 conform to the following rules (the format is just like a Windows .ini
238 file).  The actual file name may be specified during the execution of
240 .B configure
241 script with the --sysconfdir option.  Alternatively, you may have a 
242 .I .winerc
243 file of this format in your home directory or have the environment variable
244 .B WINE_INI
245 pointing to a configuration file, or use the -config option on the command 
246 line.
247 .SH ENVIRONMENT VARIABLES
248 .B wine
249 makes the environment variables of the shell from which 
250 .B wine
251 is started accesible to the windows/dos processes started. So use the
252 appropriate syntax for your shell to enter environment variables you need. 
253 .SH CONFIGURATION FILE FORMAT
254 All entries are grouped in sections; a section begins with the line
256 .I [section name]
258 and continues until the next section starts. Individual entries
259 consist of lines of the form
261 .I entry=value
263 The value can be any text string, optionally included in single or
264 double quotes; it can also contain references to environment variables
265 surrounded by
266 .I ${}.
267 Supported section names and entries are listed below.
269 .B [Drive X]
271 This section is used to specify the root directory and type of each
272 .B DOS
273 drive, since most Windows applications require a DOS/MS-Windows based 
274 disk drive & directory scheme. There is one such section for every
275 drive you want to configure.
277 .I format: Path = <rootdirectory>
279 default: none
281 If you mounted your dos partition as 
282 .I /dos
283 and installed Microsoft Windows in 
284 C:\\WINDOWS then you should specify 
285 .I Path=/dos
286 in the
287 .I [Drive C]
288 section.
290 .I format: Type = <type>
292 default: hd
294 Used to specify the drive type; supported types are floppy, hd, cdrom
295 and network.
297 .I format: Label = <label>
299 default: 'Drive X'
301 Used to specify the drive label; limited to 11 characters.
303 .I format: Serial = <serial>
305 default: 12345678
307 Used to specify the drive serial number, as an 8-character hexadecimal
308 number.
310 .I format: Filesystem = <fstype>
312 default: unix
314 Used to specify the type of the filesystem on which the drive resides;
315 supported types are msdos (or fat), win95 (or vfat), unix. If the
316 drive spans several different filesystems, say unix.
318 .B [wine]
320 .I format: windows = <directory>
322 default: C:\\WINDOWS
324 Used to specify a different Windows directory
326 .I format: system = <directory>
328 default: C:\\WINDOWS\\SYSTEM
330 Used to specify a different system directory
332 .I format: temp = <directory>
334 default: C:\\TEMP
336 Used to specify a directory where Windows applications can store 
337 temporary files.
339 .I format: path = <directories separated by semi-colons>
341 default: C:\\WINDOWS;C:\\WINDOWS\\SYSTEM
343 Used to specify the path which will be used to find executables and .DLL's.
345 .I format: symboltablefile = <filename>
347 default: wine.sym
349 Used to specify the path and file name of the symbol table used by the built-in
350 debugger.
352 .B [serialports]
354 .I format: com[12345678] = <devicename>
356 default: none
358 Used to specify the devices which are used as com1 - com8.
360 .B [parallelports]
362 .I format: lpt[12345678] = <devicename>
364 default: none
366 Used to specify the devices which are used as lpt1 - lpt8.
368 .B [spy]
370 .I format: file = <filename or CON when logging to stdout>
372 default: none
374 Used to specify the file which will be used as
375 .B logfile.
377 .I format: exclude = <message names separated by semicolons>
379 default: none
381 Used to specify which messages will be excluded from the logfile.
383 .I format: include = <message names separated by semicolons>
385 default: none
386 .br Used to specify which messages will be included in the logfile.
388 .B [Tweak.Layout]
390 .I format: WineLook=<Win31|Win95|Win98>
392 default: Win31
393 .br 
394 Use Win95-like window displays or Win3.1-like window displays.
395 .SH SAMPLE CONFIGURATION FILE
396 A sample configuration file is distributed as
397 .B wine.ini
398 in the top-level directory of the source distribution.
399 .SH AUTHORS
400 .B Wine
401 is available thanks to the work of many developers. For a listing
402 of the authors, please see the file 
403 .B AUTHORS
404 in the top-level directory of the source distribution.
405 .SH BUGS
407 A status report on many appplications is available from
408 .I http://www.winehq.com/Apps.
409 Please add entries to this list for applications you currently run.
411 Bug reports and successes may be posted to 
412 .I comp.emulators.ms-windows.wine.
413 If you want to post a bug report, please read the file
414 .I documentation/bugreports
415 in the Wine source to see what information is necessary.
417 For problems and suggestions with this manpage, please send a note to
418 James Juran <jrj120@psu.edu>.
419 .SH AVAILABILITY
420 The most recent public version of 
421 .B wine
422 can be obtained via FTP from metalab.unc.edu or tsx-11.mit.edu in the 
423 /pub/linux/ALPHA/Wine/development directory.  The releases are in the 
424 format 'Wine-yymmdd.tar.gz', or 'Wine-yymmdd.diff.gz' for the diff's 
425 from the previous release.
427 The latest snapshot of the code may be obtained via CVS.  For information
428 on how to do this, please see
430 http://www.winehq.com/dev.html
432 WineHQ, the
433 .B wine
434 development headquarters, is at
435 .I http://www.winehq.com/.
436 This website contains a great deal of information about
437 .B wine
438 as well as a collection of unofficial patches against the current release.
441 .B wine 
442 newsgroup is 
443 .I comp.emulators.ms-windows.wine.
444 All discussions about the project take place in this forum.
445 .SH FILES
446 .PD 0
448 .I /usr/local/bin/wine
449 The Wine program loader.
451 .I /usr/local/bin/dosmod
452 The DOS program loader.
454 .I /usr/local/etc/wine.conf
455 Global configuration file for wine.
457 .I ~/.winerc
458 User-specific configuration file
460 .I /usr/local/lib/wine.sym
461 Global symbol table (used in debugger)
462 .SH "SEE ALSO"
463 .BR clone (2)