Article View: fj.comp.lang.tcl
Article #5Re: C と Tk の使い方について
From: Hiroshi Narimatsu
Date: Thu, 04 Jun 1998 00:00
Date: Thu, 04 Jun 1998 00:00
59 lines
3538 bytes
3538 bytes
成松です。
In article <35754C99.C3F5382A@kais.kyoto-u.ac.jp>
sobue <sobue@kais.kyoto-u.ac.jp> writes:
> > > C言語でTkを使いたいのですが、どうやったら良いのか情報を教えて下さい。本
> > > を読んでも具体例がないのでTk_Window などの使い方がわかりません。アプリケ
> > > ーションのcの簡単なソースがあったら良いのですが。(窓を表示するだけと
> > > か)
> >
> > Ousterhoutの『Tcl and the Tk Toolkit』の Part IV: Tk's C Interfacesに
> > まさにそのC言語でのTkの使い方を具体例を使って説明してあります。
> > 御覧になったら如何でしょうか?
> > --
> > 成松 宏 nari@mxb.meshnet.or.jp http://www2b.meshnet.or.jp/~nari
>
> ご紹介の本の邦訳はすでに持っていますが、確かに各関数の機能については詳しく記述
> してあるのですが、実際にアプリケーションを作る時にどうやって使ったら良いのかわか
sobueさんのおっしゃる『C言語でTkを使う』という意味を誤解していたよう
です。すみません。『C言語でTkを使う』やりかたとしては次の2つを思い付
きます。
1. C言語でTkの新たなwidgetを作り、既存のtcl/tkと一緒に使う
2. C言語で書いたプログラムにtcl/tkのインタプリタを組み込み、tcl/tk
のプログラムを使用できるようにする。
わたしは、1ばかりやっていたもので、sobueさんもそうであろうと思って
答えてしまいました。 2の方法であれば、次のようなプログラムでできます。
======================= sample.c ============================
#include <tk.h>
main()
{
Tcl_Interp *interp;
interp = Tcl_CreateInterp();
if (Tcl_Init(interp) == TCL_ERROR) exit(1);
if (Tk_Init(interp) == TCL_ERROR) exit(1);
Tcl_StaticPackage(interp, "Tk", Tk_Init, (Tcl_PackageInitProc *) NULL);
Tcl_Eval(interp,"button .exit -text exit -command exit;pack .exit");
Tk_MainLoop();
Tcl_DeleteInterp(interp);
Tcl_Exit(0);
}
======================= sample.c (ここまで) ================
コンパイル&リンクの方法は、私の環境では、次のようになります。
% cc sample.c -I/usr/X11R6/include -I/usr/local/include -L/usr/X11R6/lib\
-L/usr/local/lib -ltk42 -ltcl76 -lX11 -lm
tcl/tkのバージョンが変わると、多少修正が必要になるかもしれません。
tkに添付の tkAppInit.cとtkMain.cを参考にすると、いいと思います。
sobueさんの『C言語でTkを使う』方法が、これでもなければ教えて下さい。
--
成松 宏 nari@mxb.meshnet.or.jp http://www2b.meshnet.or.jp/~nari
Technical Details
Message-ID:
<6l57qq$jn1$1@hslpc1.humble.co.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<35721239.D890E0A1@kais.kyoto-u.ac.jp> <6kvj1s$k98$2@hslpc1.humble.co.jp> <35754C99.C3F5382A@kais.kyoto-u.ac.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 149cc1,347df835c7d5c566 X-Google-Attributes: gid149cc1,public X-Google-Thread: 111bd3,347df835c7d5c566 X-Google-Attributes: gid111bd3,public X-Google-Thread: 114a87,347df835c7d5c566 X-Google-Attributes: gid114a87,public From: nari@mxb.meshnet.or.jp (Hiroshi Narimatsu) Subject: Re: C と Tk の使い方について Date: 1998/06/04 Message-ID: <6l57qq$jn1$1@hslpc1.humble.co.jp> X-Deja-AN: 359375872 References: <35721239.D890E0A1@kais.kyoto-u.ac.jp> <6kvj1s$k98$2@hslpc1.humble.co.jp> <35754C99.C3F5382A@kais.kyoto-u.ac.jp> Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=ISO-2022-JP X-Complaints-To: news@newssvd06.biglobe.ne.jp X-Trace: meshsv230.tk.mesh.ad.jp 896934605 10859 (None) 210.147.10.37 Organization: Humble Soft Ltd. Japan Newsgroups: fj.comp.lang.tcl,fj.comp.lang.c,fj.conp.lang.c++