[#5219] ruby for perl users — Noritsugu Nakamura <nnakamur@...>

35 messages 1997/11/09
[#5220] Re: ruby for perl users — tateishi@... (Tateishi Takaaki) 1997/11/09

立石です。

[#5224] Re: ruby for perl users — shugo@... (Shugo Maeda) 1997/11/09

前田です。

[#5243] read from subprocess — Kikutani Makoto <kikutani@...>

きくたにです。

17 messages 1997/11/10
[#5250] Re: read from subprocess — matz@... (Yukihiro Matsumoto) 1997/11/11

まつもと ゆきひろです

[#5300] Win32用の Rubyでの tkの使用 — Tomoaki Takebayashi <tota@...>

はじめまして、竹林といいます。

14 messages 1997/11/15
[#5302] Re: Win32用の Rubyでの tkの使用 — WATANABE Hirofumi <eban@...> 1997/11/15

わたなべです.

[#5303] Re: Win32 用の Rubyでの tkの使用 — Tomoaki Takebayashi <tota@...> 1997/11/15

[#5305] Re: Win32 用の Ruby での tk の使用 — aito@...5sun.yz.yamagata-u.ac.jp 1997/11/17

あ伊藤です.

[#5320] ruby 1.0-971118 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

20 messages 1997/11/18
[#5337] Re: ruby 1.0-971118 released — WATANABE Hirofumi <watanabe@...> 1997/11/19

わたなべです.

[#5340] Re: ruby 1.0-971118 released — matz@... (Yukihiro Matsumoto) 1997/11/19

まつもと ゆきひろです

[#5398] 配列への追加について — a-nisida@... (西田明良)

はじめまして、西田@初心者 と申します。m(..)m

16 messages 1997/11/22

[ruby-list:5305] Re: Win32 用の Ruby での tk の使用

From: aito@...5sun.yz.yamagata-u.ac.jp
Date: 1997-11-17 00:04:00 UTC
List: ruby-list #5305
あ伊藤です.

In article <346D74140.281C.tota@os.rim.or.jp>,
	Tomoaki Takebayashi  <ruby-list@netlab.co.jp> writes:

> > :私は通常Windowsを使用しているのですが、Windows上で動くrubyはtk関係の
> > :クラスの使用ができるのでしょうか。
> > 
> > 残念ながらできません. そのうちなんとかと思ってるんだけど.
> そうですか。残念です。
> rubyでプロトタイプを書いて、C++で書き直すといったことをやってみたかったん
> です。

私も,これができないために,心ならずも :-) tcl/tk でプログラム
を書いています.ruby でも,tcl/tk を直接リンクする拡張が正式
公開されれば,Windows への移植は比較的簡単ですよね.

> なんか質問する個所が違うので、恐縮なんですがひとつ教えてください。
> tkって、本家Tcl/tk、Ptyhon/tk、Perl/tkなどの実装を知ってますが、簡単に
> 追加ライブラリとして組み込むことができるものなんでしょうか。
> コードを見たことがないので、結構不思議なんです。

tk 単独ではリンクできません.tcl/tk をそのままリンクします.
ボタンを押したら "Hello" と表示するプログラムは,例えばこんな
感じです.

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

int say_hello(ClientData data, Tcl_Interp *interp, int argc, char *argv[])
{
    printf("Hello\n");
    return TCL_OK;
}

int Tcl_AppInit(Tcl_Interp *interp)
{
    Tcl_Init(interp);
    Tk_Init(interp);
    Tcl_StaticPackage(interp, "Tk", Tk_Init, (Tcl_PackageInitProc *) NULL);

    Tcl_CreateCommand(interp,"say_hello",say_hello,NULL,NULL);

    Tcl_Eval(interp,"button .b -text {PUSH} -command say_hello\npack .b");
    return TCL_OK;
}

main(int argc, char *argv[])
{
    Tk_Main(argc,argv,Tcl_AppInit);
}

自前でコマンドを定義し,それを呼び出す tcl のプログラムを Tcl_Eval
(または Tcl_EvalFile)で評価するというのが一般的だと思います.


# ruby の拡張も簡単なので挑戦してみてくださいね :-)
--_
ITO  Akinori at YAMAGATA UNIVERSITY
伊藤 彰則       山形     大学

In This Thread