[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 09/20 13:16 / Filesize : 65 KB / Number-of Response : 371
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

D言語 Part30



1 名前:デフォルトの名無しさん mailto:sage [2012/07/31(火) 00:05:43.45 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。

■本家
dlang.org/ - 公式(英語)
www.kmonos.net/alang/d/ - 公式の和訳
d.puremagic.com/issues/ - D言語バグ報告
https://github.com/D-Programming-Language - D言語開発リポジトリ

■Wiki
dusers.dip.jp/ - D言語友の会(日本語フォーラムあり)
prowiki.org/wiki4d/ - Wiki4D(公認Wiki)

■前スレ
D言語 Part29
toro.2ch.net/test/read.cgi/tech/1329714331/

■過去スレ、関連スレ
makimo.to:8000/cgi-bin/search/search.cgi?q=D%8C%BE%8C%EA&sf=2&all=on&view=table&shw=5000

66 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 23:42:06.27 ]
納得いかない

import std.stdio;

extern(C)
void f(int n)
{
  writeln(typeid(&f));
}

void main()
{
   f(0);
}

⇒ void()*

67 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 23:55:09.40 ]
writelnがアレなだけかね
pragma(msg, typeof(&f)); // void function(int n)

68 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 23:55:46.33 ]
あ、typeidか

69 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 09:26:21.49 ]
Dで使用する以下の関数を持つdllの作成について教えてください。dll作成はVisualStudio2010(32bit)を利用します。
現状以下の手順でdllを作成&使用していますが、関数呼び出し時object.Error: Access Violationとなってしまいます。
どこかおかしいところがあれば指摘お願いします。

以下手順です
【1.dll作成】
--- xxx.c ---
__declspec(dllexport) int __stdcall func(int (*f)(int, int), int x, int y);
int __stdcall func(int (*f)(int, int), int x, int y){  return f(x, y);}

【2.implibでxxx.libを作成】
implib /system xxx.lib xxx.def
---xxx.def---
LIBRARY "xxx.dll"
EXPORTS
_func@12

【3.dソースで利用】
dmd src.d xxx.lib
--- src.d ---
extern(System){
int func(int function(int, int) f, int x, int y);
int f0(int x, int y){return x + y;}
}
void main(){
  func(&f, 1, 2); // object.Error: Access Violation
}

70 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 09:28:30.65 ]
訂正
x func(&f, 1, 2); // object.Error: Access Violation
○ func(&f0, 1, 2); // object.Error: Access Violation

71 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 09:51:13.09 ]
xxx.cのfuncの引数のfにも__stdcallをつければ通る

72 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 10:08:47.76 ]
>>71
どうもです。動きました。

73 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/11(土) 11:32:33.86 ]
Wonders ver.1.05
https://github.com/katahiromz/wonders
katahiromz.web.fc2.com/d/wonders.html
wincodec, dispdib, wownt{16,32}, directx/{d2derr,dxgiformat,
d2dbasetypes,d3d10_1,d3d10sdklayers,d2d1,d2d1helper,
d3d10_1shader,dcommon,dwrite,d3dcommon,id3d10blob}を追加。
mswsock, winsock2: バグ修正。

74 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/11(土) 11:41:55.14 ]
GUID定数は、externじゃなくて値埋め込みの方がいいかな?



75 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/11(土) 12:13:11.06 ]
構造体は、クラスで継承できなかった。

76 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 12:23:02.22 ]
個人の日記帳

77 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 13:10:27.52 ]
twitterだな

78 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 13:20:54.73 ]
うん

79 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 13:51:36.12 ]
githubに登録したんだから使う人はそっち見るだろう
失礼だけど需要のほとんど無いライブラリのリビジョンが上がる度に書き込むのはどうかと思うよ

80 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 17:38:07.15 ]
値型のconst変数の存在価値がわからない
immutableかenumでいいじゃん

81 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 19:41:07.36 ]
ポインタがあるからじゃ?

82 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 22:13:54.70 ]
>>75
次は関数パラメータのconst対応行ってみようか


83 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 22:19:46.85 ]
鬼が居るw

84 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 23:02:36.64 ]
IDEも作ってもらわなきゃ困る
なんかもう色々と最強なやつな



85 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 00:09:07.60 ]
現状だとVisualDの開発に参加するのが一番だろうね

86 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 00:43:23.84 ]
変数の中身をちゃんと見られるようになれば・・・

87 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 00:48:57.50 ]
どうも動きを見てると
Release版の静的ライブラリを読み込んでいる部分が展開されないような雰囲気

88 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 01:57:47.08 ]
ここのスレの住人はD言語の成長を暖かく見守ってるようでいいな
他の言語のスレは自分が使ってる言語をクソ糞言ってて気が滅入ってくるよ…

89 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 02:04:11.04 ]
まあアレだ
食う前に十分太らせないと
肉の旨いもマズいも無いってな

90 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 02:05:08.76 ]
ていうか、ある意味ではあんま変わらんよね。
クソ!(歓喜)みたいな。

91 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 02:18:00.42 ]
>>88
!!!D言語に欠点など無いからだ!!!!

92 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 07:30:06.05 ]
こんなインファイトの殴り合いをかけてくるクソがあるかッ!

93 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 11:26:50.74 ]
www.kmonos.net/alang/d/struct.html
>構造体にデストラクタのあるフィールドを持たせることはできません。

え?!

dlang.org/struct.html
>Unions may not have fields that have destructors.

なんだ共用体か・・・

94 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 11:34:11.21 ]
残念ながら・・・



95 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 12:27:37.70 ]
共用体のメンバごとにデストラクタ呼んでたらえらいことになるなw

96 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 12:37:53.11 ]
Dのデストラクタの信用ならなさは異常

97 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 12:57:56.04 ]
初歩的な質問なんだけど,プログラムを終了するときってどうすればいいんだ?
例外が発生したら writeln(ex); した後に自分を終了したいんだけど。
core.Runtime.terminate(); を使えばいいのかな?


98 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 13:21:06.55 ]
Cの関数は普通に使えるんでstd.c.process.exitもあるし、
あるいはmainまで伝播させてreturnとか。

99 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 13:43:00.96 ]
>>98
Thanks!
使い方がまずいのか,
std.c.process.exit だと scope(exit) hoge(); が実行されなかったので,
素直にmainまで伝搬させることにしました。

100 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 13:50:00.88 ]
andreiは例外投げろ、それがDのやり方だっていってるね

101 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/12(日) 15:04:10.99 ]
>>82 えっ、具体例を挙げてくれますか?
CPtrとinで対応していると思いますが。

102 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 15:12:19.10 ]
D言語の薄い本が完売したと聞いて動揺した

103 名前:デフォルトの名無しさん [2012/08/12(日) 16:20:30.71 ]


104 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 18:14:23.98 ]
そうかもう夏コミの季節か
明日からだっけ…?



105 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 20:14:38.46 ]
今日で終わりだよ

106 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 20:28:33.95 ]
\(^o^)/オワタ

107 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 20:34:26.88 ]
with (w = .writeln) {
 w("www")
}

みたいな構文が欲しい

108 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 20:36:45.02 ]
>>101

class Moge
{
 HWND m_hWnd;
 void Hoge() const
 {
  WinAPIHoge(m_hWnd);
 }
}

こんな感じだとconst入れてくれるなってエラー吐くのよ

WinAPIHoge(cast(void*)m_hWnd);
こんな状況になるわけさ

ただ値を参照してるだけのようなAPIにはWINAPIの関数パラメータのほうにconstをぶっ込んでくれると助かる

109 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 20:37:00.89 ]
{
 alias writeln w;
 w(1);
}

110 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 20:38:03.62 ]
あれ、前は関数内でalias作れないような気がしてたけど気のせいだったかな
ありがと

111 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 23:59:19.36 ]
structはnewしなくてもいい、classはC++と違ってnewしないとだめだけど
C++から割とでかいプログラムを移植する場合structなのかclassなのか全部把握してないとひどい目にあうよね
C++だと多態使う必要なければnewしないの普通だからそういうとこではまる
ほんとはできればnewしないで使いたいなあとか思ったり
みんなその辺どうしてる?

112 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 00:03:58.47 ]
static opCall()

113 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 00:04:34.63 ]
classは使わない
全部struct

114 名前:デフォルトの名無しさん [2012/08/13(月) 00:10:52.03 ]
>>112
class C;
C c;
これをC++から移植するとき = new C()をつけるのを忘れてデバッグで苦労するのを何とかしたいんだ
opCall定義してもC c;じゃ通らないから結局解決しないんだぜ

>>113
お、それいいね!!
継承できんがな(´・ω・`)



115 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 00:14:47.98 ]
>>114
これでどうだ
ttp://www.kmonos.net/alang/d/template-mixin.html

116 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 00:25:53.08 ]
>>115
お姉さん基底クラスにキャストして多態的なことしたいのェ・・・

117 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 00:31:33.78 ]
もうアキラメロン

118 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 01:18:10.93 ]
クラス名を全部変える(頭に Cをつけるとか)
それからコンパイル時にこけたところを一つずつ直す


119 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 04:53:43.24 ]
何で怒られるんです?
need 'this' to access member

ideone.com/cyoXu

120 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 08:00:40.46 ]
-debugコンパイルスイッチを付けた場合と付けない場合とで出力内容が違うんだけど、これって仕様通り?
dpaste.com/785387/

121 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 08:15:03.61 ]
単に未定義の部分が揺れてるだけだとおも

122 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 08:44:00.60 ]
デストラクタでメンバ触っていいのか?

123 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 09:07:07.74 ]
>>122
ttp://www.kmonos.net/alang/d/class.html#destructors
> auto オブジェクトや DeleteExpression で削除されるオブジェクト (GCからのデストラクタ呼び出しではないので、参照は必ず有効)には当てはまりません。

124 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 09:24:52.88 ]
postblitが正しく呼び出されないバグ



125 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/13(月) 09:38:10.53 ]
>>108 なるほど。

126 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 10:45:12.79 ]
>>120
-debug時にデストラクタが4回呼ばれるのも気になる

127 名前:120 mailto:sage [2012/08/13(月) 12:57:42.83 ]
dpaste.comとdpaste.dzfl.plを誤爆しただなんて恥ずかしくて言えない

128 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 22:14:02.96 ]
>>119
www.kmonos.net/alang/d/expression.html#TypeidExpression
ideone.com/clone/Pq85f

129 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 22:16:29.19 ]
ideoneのアドレスみすったかも
ideone.com/CfqgQ

130 名前:デフォルトの名無しさん mailto:sage [2012/08/14(火) 10:02:05.53 ]
ほほーう、ふふーん。二段構えなんですね

131 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/14(火) 15:53:19.37 ]
<cguid.h>のCLSID_CCD*の値と、<mshtml.h>のCLSID_*の値が分からない。
誰か教えて。。。

132 名前:デフォルトの名無しさん mailto:sage [2012/08/14(火) 16:31:58.30 ]
>>131
toro.2ch.net/test/read.cgi/tech/1344046683/

133 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/14(火) 16:35:25.22 ]
c_dfDIKeyboard, c_dfDIMouse2, c_dfDIJoystickの中身は定義した方がいい?

134 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/14(火) 17:25:59.44 ]
APIのライブラリが足りないなぁ。implibかなんかで作ろうか。。。



135 名前:デフォルトの名無しさん mailto:sage [2012/08/14(火) 17:50:13.61 ]
ここはお前の日記帳じゃねえんだ
バカッターにでも書いてろ、な!

136 名前:デフォルトの名無しさん mailto:sage [2012/08/14(火) 17:59:51.57 ]
twitterをご存じないのではないでしょうか
140字までの短文を投稿・閲覧できるサービスです
片山さんの書き込みには適していると思います
私もおすすめしますよ

137 名前:デフォルトの名無しさん mailto:sage [2012/08/15(水) 00:28:01.03 ]
extern const CLSID CLSID_CCDFormKrnl;
extern const CLSID CLSID_CCDPropertyPage;
extern const CLSID CLSID_CCDFormDialog;

extern const CLSID CLSID_CCDCommandButton;
extern const CLSID CLSID_CCDComboBox;
extern const CLSID CLSID_CCDTextBox;
extern const CLSID CLSID_CCDCheckBox;
extern const CLSID CLSID_CCDLabel;
extern const CLSID CLSID_CCDOptionButton;
extern const CLSID CLSID_CCDListBox;
extern const CLSID CLSID_CCDScrollBar;
extern const CLSID CLSID_CCDGroupBox;

extern const CLSID CLSID_CCDGeneralPropertyPage;
extern const CLSID CLSID_CCDGenericPropertyPage;
extern const CLSID CLSID_CCDFontPropertyPage;
extern const CLSID CLSID_CCDColorPropertyPage;
extern const CLSID CLSID_CCDLabelPropertyPage;
extern const CLSID CLSID_CCDCheckBoxPropertyPage;
extern const CLSID CLSID_CCDTextBoxPropertyPage;
extern const CLSID CLSID_CCDOptionButtonPropertyPage;
extern const CLSID CLSID_CCDListBoxPropertyPage;
extern const CLSID CLSID_CCDCommandButtonPropertyPage;
extern const CLSID CLSID_CCDComboBoxPropertyPage;
extern const CLSID CLSID_CCDScrollBarPropertyPage;
extern const CLSID CLSID_CCDGroupBoxPropertyPage;
extern const CLSID CLSID_CCDXObjectPropertyPage;


138 名前:デフォルトの名無しさん mailto:sage [2012/08/15(水) 00:34:26.46 ]
>>131 p:sage
www.dotup.org/uploda/www.dotup.org3311898.h.html

139 名前:デフォルトの名無しさん mailto:sage [2012/08/15(水) 12:04:02.32 ]
久しぶりに見に来たけど丹後さん死んでしまったん?

140 名前:デフォルトの名無しさん mailto:sage [2012/08/15(水) 12:27:35.07 ]
D2でいらない子扱いにされて拗ねてる

141 名前:デフォルトの名無しさん mailto:sage [2012/08/15(水) 12:37:17.15 ]
どっちかというと形を変えながらだんだんPhobosにマージされていってるんじゃないの?

142 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 04:37:40.53 ]
ああ、すごい遅いけど>>1乙です。
ローダ更新しました。
ttps://dl.dropbox.com/u/1630843/hp/d/mqo_loader.zip
o Derelict3 に移行しました。
o 全体的に書き直しました。
o テクスチャ貼りました。
o コンパイル時評価挫折しました。← New!!

軽い気持ちではじめたからDropboxだったけど、sourceforge に場所借りようかな。

143 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 06:24:04.14 ]
sourceforgeもいいけどgithubもいいよ!

144 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 09:22:42.65 ]
すげー
乙乙



145 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 15:00:57.31 ]
>>142
スタックトレース吐いた〜〜。
ttp://ideone.com/BVUBL

146 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 15:24:26.01 ]
デマングれてないとこがあるな…

147 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 21:18:36.18 ]
foreach (; 0 .. 10)
みたいなカウンタ変数すら無いループとかできないかな

148 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 21:48:54.30 ]
単純に回したいなら、構文は foreach(10) でいいんじゃないか。

149 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 21:59:31.11 ]
0開始とは限らないから foreach (5 .. 15) も必要じゃね?

150 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:07:14.71 ]
え。ループカウントは使いたいの?

151 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:10:49.41 ]
>>149
変数無いのにどうやってカウント値を参照するんだ?

152 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:20:04.89 ]
カウント変数$_に格納されます

153 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:21:10.27 ]
>>152
Perl?っていうかマジで?

154 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:30:18.95 ]
>>152
だったら普通に変数使えよw



155 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:08:28.66 ]
大してご利益もないのに複雑になるだけの構文イラネ

156 名前:149 mailto:sage [2012/08/16(木) 23:45:58.67 ]
>>150-151
こいつぁとんだ間抜けだぜ!
笑ってやれ笑ってやれHAHAHA

157 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:48:31.39 ]
src\druntime\import\core\stdc\*
のファイルって2.059だと.diなのに2.060では.dになってるのはなぜですか?

158 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 00:31:17.53 ]
>>145 おっとこいつは失礼。
-> mqo ファイル内でテクスチャファイル名が絶対パスなの考慮してなかった。直しました。
ttps://dl.dropbox.com/u/1630843/hp/d/mqo_loader.zip
ご指摘ありがとうございました。m(_ _)m

>>143
github のがいいんだ。じゃ次のからそうします。

>>146
2.059の時も文字化け?みたいなのしてたけど2.060でさらに読みにくくなったよね。>スタックトレース

159 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 01:44:08.70 ]
>>158
スタックトレース吐かなくなりました。GJ!

160 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 01:54:36.07 ]
foreach (_; 0..10)で我慢

161 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 11:17:18.65 ]
Error 42: Symbol Undefined _D6object29__T16AssociativeArrayTAxaTxkZ16Associativ
eArray6valuesMFNdZAxk
Error 42: Symbol Undefined _D6object29__T16AssociativeArrayTAxaTxkZ16Associativ
eArray6valuesMFNdZAxk

リンク時にこういうエラーが出ます。
おそらくisAssociativeArrayを使っているからだと思いますが、どうすればいいですか?

162 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 13:14:26.86 ]
対象の xxxx.lib をコンパイル時に参照するように指定してあげないといけないんじゃないの

163 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 13:19:36.44 ]
連想配列周りのバグが直ってないのがいくつかあった気がする
d.puremagic.com/issues/show_bug.cgi?id=5950

コマンドラインでソースファイル名を渡す順序を入れ替えると
出なくなったりとか変なバグがある

164 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 17:21:47.56 ]
>>162
isAssociativeArrayはD言語標準なので困ったところなのです。

>>163
コンパイラのバグだったか・・・。
ソースファイルを渡す順序の入れ替え・・・地味な作業になりそうです。



165 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 17:33:45.50 ]
まさかisAssociativeArrayを関数呼び出ししてない?

166 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 18:02:24.16 ]
>>165
static if (isAssociativeArray!(Hoge))
こんな感じで使ってます。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<65KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef