This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

(Updated) Sample code for beginners of tcl/tk & cygwin32 environment


#include <stdio.h>
#include <tcl.h>
#include <tk.h>

/* 
   compilation & linking on Linux:
   gcc -o tkhelloworld tkhelloworld.c -L/usr/X11R6/lib \
                                                 -ltcl -ltk -lX11 -ldl -lm 

   compilation & linking on WinNT (cygwin32 version b18):
   gcc -o tkhelloworld tkhelloworld.c -ltcl7.6 -ltk4.2

   if you do not want a console window appearing everytime you
   run the program, here are the compilation & linking options
   for WinNT (cygwin32 version b18):
   gcc -o tkhelloworld tkhelloworld.c -ltcl7.6 -ltk4.2 \
                                           -luser32 -Wl,--subsystem,windows
   (Thanks to Jason L. Esman)					 
*/

int main(argc, argv)
     int argc;
     char **argv;
{
  Tk_Window mainWindow;
  Tcl_Interp *tcl_interp;
  
  tcl_interp = Tcl_CreateInterp();

  if(Tcl_Init(tcl_interp) != TCL_OK || Tk_Init(tcl_interp) != TCL_OK) {
    if(*tcl_interp->result)
      (void)fprintf(stderr,"%s: %s\n", argv[0], tcl_interp->result);
    exit(1);
  }

  mainWindow = Tk_MainWindow(tcl_interp);
  if (mainWindow == NULL) {
    fprintf(stderr, "%s\n", tcl_interp->result);
    exit(1);
  }
  
  Tcl_Eval(tcl_interp, "button .b -text \"Hello World\" -command exit");
  Tcl_Eval(tcl_interp, "pack .b");

  Tk_MainLoop();

  exit(1);
}


-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]