|
From: Joe E. <jen...@fl...> - 2005-05-25 19:34:08
|
Techentin, Robert W. wrote: > I would like to deploy a starkit application with both BLT and Tile, > particularly on Windows, [...] > Unfortunately, dqkit (and even other older tclkits) can't load > tile06.kit because pkgIndex.tcl insists on Tcl 8.4.6 or higher. [...] The problem that the tile06.kit's pkgIndex.tcl script is trying to avoid is: the theme engine calls a Tk private routine that wasn't added to the private stubs table until Tk 8.4.6. So if you compile Tile against post-8.4.6 private headers, and load it into a pre-8.4.6 interp, it will crash. Other possibilities are: (1) Compile with -DNO_PRIVATE_HEADERS (see tkTheme.c). Then tile.dll will declare and call the offending function directly instead of going through the stubs table. This may cause a runtime linker error, depending on the platform and how the core was built. (2) Compile against pre-8.4.6 headers. This will have basically the same effect as (1), plus you'll get a compiler warning. (3) Build tile --enable-static and link libtile.a / TILE.LIB into the Big Wish / starkit runtime / whatever. Tile_Init() supports the usual tcl_findLibrary conventions for locating its init script. > Tinkering around a bit, I find that I can actually load tile06.kit's > tile06.dll into dqkit if I can get past the pkgIndex.tcl limitations. > [...] > I haven't done extensive testing, but the demos still runs, so I presume > that all the widgets work. Is this reasonable, or a bad idea? If it doesn't die with a runtime linker error, and doesn't crash when you create and map a widget, you should be OK. --Joe English jen...@fl... |