Re: What does embedding mean



On May 12, 1:45 pm, Canol Gokel <ca...@xxxxxxxxxx> wrote:
On Sun, 10 May 2009 12:35:18 +0000, Cameron Laird wrote:
In article
<c9919eb7-61dc-46cd-8d17-0a9edbadc...@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
 <b...@xxxxxxxxxxxxxxx> wrote:
On May 9, 12:25 pm, ZuLuuuuuu <canol.go...@xxxxxxxxx> wrote:
                   .
                   .
                   .
interface. I was thinking about using C and GTK+ since my instructor
wants a program easily installable on Windows machines. We are
electronics engineerings so, you know, the people around me does not
know what interpreted languages etc. are. They want .exe files which
are easily installable and are working with just a double click.
                   .
                   .
                   .
look at tclkits and startpaks. You can create a single file (or two
file) runnable program. This is how I run all my tcl code today. I
                   .
                   .
                   .
Let's make this painfully clear:  Tcl can be the basis for any
installation regime that "C and GTK+" offer, and more.  Although the
original questioner doesn't realize it, his description is ambiguous.
Let's distinguish these possibilities: A.  A single-file executable:
Tcl's Starpacks make
    this possible.  We generally handle this simply by giving consumers
    the .exe, and letting them copy it where they want.
B.  More "normal" in a retail sense is a single-file
    .exe or install.bat which expands into a mess of DLLs and registry
    entries and other goop, spread out over who-knows-where.  Tcl and
    applications based on it can be installed this way, if one insists
    on goop-spreading--and your consumers are likely to expect it,
    because they've been trained to think that conflict-prone goop is
    "normal" and "professional".
C.  There are many, many other possibilities,
    including the "amateurish" ones you already have in mind.

I repeat:  if "C and GTK+" do it, Tcl can, too, although it's generally
a little more unusual for Tcl programs to create the version skew and
DLL conflict to which GTK+ has been prone.

Thanks for the answers.

I don't know if building the main app with Tcl and extend it using C
might work for me because the device I'm gonna interact might have a
driver written in C and in that case I have to write a Tcl binding for
that driver to use it in Tcl I guess? But I don't know how to write
bindings for a language yet :(

If you can write C its close to trivial in most cases.

Either use something like critcl to write C inline in a Tcl script, or
use SWIG to help generating a Tcl extension, or start from the
sampleextension and add your own code to it.

Have a look at the links at:
http://wiki.tcl.tk/9849

Michael


.



Relevant Pages

  • Re: EXEC and Windows XP
    ...   I'd say I'm pretty much a "noob" with tcl, but in reality, I'm very ... noob, ... to indicate routine execution). ...
    (comp.lang.tcl)
  • Re: Tcl-URL! - weekly Tcl news and links (Jun 7)
    ... Your Wiki ... And as it happened about the combination of Tcl and other ... The utility works on the Tcl source code ...    comp.lang.tcl is a crucial resource for Tcl practitioners. ...
    (comp.lang.tcl)
  • Re: SIMPLE web-app framework a la PHP? (Not rivet, methinks)
    ... string would be sent to the browser. ... What's wrong with "a bunch of commands"? ... Actually, using Rivet's ability to process .tcl files, tied to ...
    (comp.lang.tcl)
  • Re: adding events to tcl queue, or using variables and traces (C and TCL)
    ...   * hardware depended code was picked out from main source and written ... dealing with real hardware, or for PC, where *_hal.c files contain ... Then program was build for PC, I can using TCL commands change input ... signal states for simulated hardware, for example, or view output ...
    (comp.lang.tcl)
  • Re: clock format does not run in window service
    ... If your service runs without sufficient file access rights tcl might ... That your source command only accepts one parameter instead of having ... application-specific initialization failed: wrong # args: should be ...
    (comp.lang.tcl)