[#2906] DLL for GNU Win32 — WATANABE Hirofumi <watanabe@...>
わたなべです.
5 messages
1997/05/06
[#2910] thread and fork — jkuro@... (Jun Kuroda)
黒田です。
15 messages
1997/05/07
[#2911] Re: thread and fork
— matz@... (Yukihiro Matsumoto)
1997/05/07
まつもと ゆきひろです.
[#2912] Re: thread and fork
— jkuro@... (Jun Kuroda)
1997/05/07
黒田です。
[#2913] Re: thread and fork
— matz@... (Yukihiro Matsumoto)
1997/05/07
まつもと ゆきひろです.
[#2914] Re: thread and fork
— jkuro@... (Jun Kuroda)
1997/05/07
黒田です。
[#3023] Re: thread and fork
— jkuro@... (Jun Kuroda)
1997/05/27
黒田です。
[#3025] Re: thread and fork
— matz@... (Yukihiro Matsumoto)
1997/05/28
まつもと ゆきひろです
[#2922] chap 1 draft #2 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
7 messages
1997/05/09
[#2936] How to create ext — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
8 messages
1997/05/13
[#2938] Re: How to create ext
— matz@... (Yukihiro Matsumoto)
1997/05/13
まつもと ゆきひろです.
[#2952] [BUG] Dir.glob — sinara@...
原です。おひさしぶりです。
6 messages
1997/05/16
[#2960] dl-malloc — jkuro@... (Jun Kuroda)
黒田です。
9 messages
1997/05/19
[#2978] Re: [s-lang:00052] Re: Python/Ruby Jed — MAEDA Shugo <shugo@...>
前田です。
6 messages
1997/05/20
[#3005] Matrix — MAEDA Shugo <shugo@...>
前田です。
13 messages
1997/05/22
[#3006] Re: Matrix
— matz@... (Yukihiro Matsumoto)
1997/05/22
まつもと ゆきひろです
[#3026] ruby 1.0-970528 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
9 messages
1997/05/28
[#3027] Re: ruby 1.0-970528 released
— MAEDA Shugo <shugo@...>
1997/05/28
前田です。
[#3031] Re: ruby 1.0-970528 released
— matz@... (Yukihiro Matsumoto)
1997/05/29
まつもと ゆきひろです
[#3028] Can I use non IO object for $stdout? — MAEDA Shugo <shugo@...>
前田です。
7 messages
1997/05/28
[#3030] Re: Can I use non IO object for $stdout?
— matz@... (Yukihiro Matsumoto)
1997/05/29
まつもと ゆきひろです
[#3034] Re: Can I use non IO object for $stdout?
— MAEDA Shugo <le4441ms@...>
1997/05/29
前田です。
[#3050] flock (BSD/OS 2.0 i386) — gotoken@... (GOTO Kentaro)
後藤です。
6 messages
1997/05/30
[#3055] ruby 1.0-970530 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
5 messages
1997/05/30
[ruby-list:2892] Re: how to init class?
From:
Sadayuki Sakamoto<sakamoto@...>
Date:
1997-05-01 11:38:00 UTC
List:
ruby-list #2892
酒本です。
>前田です。
>
>On Wed, 30 Apr 97 09:40:15 JST,
>Sadayuki Sakamoto <sakamoto@tsc.sjk.kdd.co.jp> wrote:
>
>|(1) 任意のDLL中のAPIをコールする拡張モジュールを作った。
>| あとは全てruby でクラスを作ろうと考えました。
>
>うわ、すごいですね。
>引数の変換とかはどうされたんでしょう?
手元にソースがないので正確ではないのですが、
渡したい値などを配列にし、ruby で pack してそれを渡しています。
渡す文字列や、渡される文字列の領域等もそのものをいっしょにpackし、
パックされた内容を示すテンプレート文字列を別の引数で渡してます。
"LLLS16" (32ビット整数が3個に16バイトの領域) とかです。
わたしは、DLLクラスにしてしまったので確か、
DLL.call(関数名、テンプレート文字列、packされたブロック)
とやって、内部で引数配列に分解してます。渡されたブロック
を上書き用に複製した後、分解時に分かる
引数の数(0〜16)で冗長に分岐してAPIをcallしてます。
あとは複製されたブロックを返しています。
結構なオーバヘッドでよすね。考えれみれば。
>main()はそのままで
>
> hinst = GetModuleHandle(NULL);
>
>とかしてhinstを拾ってこようかと思っています。
>
>あとはTk.main_loopみたいなのを用意して
>
> while (GetMessage(&msg,
> NULL,
> 0,
> 0))
> {
> TranslateMessage(&msg);
> DispatchMessage(&msg);
> }
>
>とかすればいいかなーと安直に考えているのですが...
そういう方法があるのですね。
--
酒本定幸 KDD 交換サービス技術部 03-3347-7429
sakamoto@tsc.sjk.kdd.co.jp