Tk 8.0.3 for Windows
by Scott Stanton
SCCS: @(#) README 1.20 97/11/21 15:17:54
This is the directory where you configure and compile the Windows
version of Tk. This directory also contains source files for Tk
that are specific to Microsoft Windows. The rest of this file
contains information specific to the Windows version of Tk.
2. Distribution notes
Tk 8.0 for Windows is distributed in binary form in addition to the
common source release. The binary distribution is a self-extracting
archive with a built-in installation script.
Look for the binary release in the same location as the source release
(ftp.scriptics.com:/pub/tcl/tcl8_0 or any of the mirror sites). For most users,
the binary release will be much easier to install and use. You only
need the source release if you plan to modify the core of Tcl, or if
you need to compile with a different compiler. With the addition of
the dynamic loading interface, it is no longer necessary to have the
source distribution in order to build and use extensions.
3. Compiling Tk
In order to compile Tk for Windows, you need the following items:
Tcl 8.0 Source Distribution (plus any patches)
Tk 8.0 Source Distribution (plus any patches)
The latest Win32 SDK header files
Borland C++ 4.5 or later (32-bit compiler)
Visual C++ 2.x or later
In practice, 8.0.3 was built with Visual C++ 5.0
In the "win" subdirectory of the source release, you will find two
files called "makefile.bc" and "makefile.vc". These are the makefiles
for the Borland and Visual C++ compilers respectively. You should
copy the appropriate one to "makefile" and update the paths at the top
of the file to reflect your system configuration. Now you can use
"make" (or "nmake" for VC++) to build the tk libraries and the wish
In order to use the binaries generated by these makefiles, you will
need to place the Tk script library files someplace where Tk can
find them. Tk looks in one of two places for the library files:
1) The environment variable "TK_LIBRARY".
2) In the lib\tk8.0 directory under the Tcl installation directory
as specified in the registry:
For Windows NT & 95:
Value Name is "Root"
2) Relative to the directory containing the current .exe.
Tk will look for a directory "..\lib\tk8.0" relative to the
directory containing the currently running .exe.
Note that in order to run wish80.exe, you must ensure that tcl80.dll,
tclpip80.dll (plus tcl1680.dll under Win32s), and tk80.dll are on your
path, in the system directory, or in the directory containing
4. Test suite
The Windows version of Tk does not pass many of the tests in the test
suite. This is primarily due to dependencies in the test suite on the
size of particular X fonts, and other X related features as well as
problems with "exec". We will be working to develop a more general
test suite for Tk under Windows, but for now, you will not be able to
pass many of the tests.
5. Known Bugs
Here is the current list of known bugs/missing features for the
Windows beta version of Tk:
- There is no support for custom cursors/application icons. The core
set of X cursors is supported, although you cannot change their color.
- Stippling of arcs isn't implemented yet.
- Some "wm" functions don't map to Windows and aren't implemented;
others should map, but just aren't implemented. The worst offenders
are the icon manipulation routines.
- Under Win32s, you can only start one instance of Wish at a time.
- Color management on some displays doesn't work properly resulting in
Tk switching to monochrome mode.
- Tk seems to fail to draw anything on some Matrox Millenium cards.
- Printing does not work for images (e.g. GIF) on a canvas.
- Tk_dialog appears in the upper left corner. This is a symptom of a
larger problem with "wm geometry" when applied to unmapped or
- Some keys don't work on international keyboards.
- PPM images are using the wrong translation mode for writing to
files, resulting in CR/LF terminated PPM files.
- Tk crashes if the display depth changes while it is running. Tk
also doesn't consistently track changes in the system colors.
If you have comments or bug reports for the Windows version of Tk,
please direct them to:
or post them to the newsgroup comp.lang.tcl.