[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/03 14:11 / Filesize : 215 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

C#, C♯, C#相談室 Part58



1 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 21:35:10 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ 
C#, C♯, C#相談室 Part55 (実質56)
pc12.2ch.net/test/read.cgi/tech/1260111240/

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>1-5くらい

492 名前:480 mailto:sage [2010/04/25(日) 20:51:49 ]
メイリオをあきらめてフォントをMS ゴシックにしたら、
「ファイル(F)」が「ブアゥレ(F)」に文字化けしたwww


だれか、Aero Glassのメニューに綺麗に文字が描ける方法を知りませんか?

493 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 20:54:03 ]
>>490
タイマを使うとテキストボックスの文字を点滅できました

forを使うとなぜ10秒間、「実験」の文字すらでてこなくなるのか
教えていただけるとありがたいのですが。
テキストボックス以外が固まるのはそうだろうなと思うのですが。

494 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 20:56:13 ]
>>492
VisualStyleRenderer.DrawText使えば?

495 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 20:57:10 ]
>>493
> forを使うとなぜ10秒間、「実験」の文字すらでてこなくなるのか
描画するのも同じスレッド
ところがそのスレッドがループで詰まってるから描画もできない

496 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:08:49 ]
>>495さん
ほえー
ありがとう。今日ずっと悩んでいたんです。
.AppendTextなら文字がでてくるのに
なんで.textでは出てこないのかなーと。
本当にありがとう。

497 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:12:32 ]
for (int i = 0; i < 10; i++)
{
textBox1.Text = "実験";
textBox1.Refresh();
Thread.Sleep(200);
textBox1.Text = "";
textBox1.Refresh();
Thread.Sleep(200);
}
としたらちゃんと点滅できました。ありがとう。

498 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:14:29 ]
>>497
お前は何もわかっていない
Thread.Sleepはマルチスレッドなど非同期で動かしたりする場合に使う
シングルスレッド、ましてやFormクラスで使うべきじゃない

499 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:21:45 ]
>>498さん
そのとおりです
今、マルチスレッドをやっているところなんです。
通信を別スレッドで受けている間
文字を点滅させられないかなと悩んでました。
怒らないで。

500 名前:480 mailto:sage [2010/04/25(日) 21:23:45 ]
>>494
ありがとうございます。
やってみましたが、やっぱり文字が透明になりました。



501 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:24:58 ]
で、通信データは別スレッドからテキストに固まらずに表示されるのに
なぜ、点滅みたいな簡単なことで固まるのかわからなかったので。

502 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:28:35 ]
>>501
それはマルチスレッドじゃなくて
ただのスレッド処理だから
もう一方が処理している間、他のスレッドは割り込めない
割り込みたいならlockキーワードを使うべし

503 名前:490 mailto:sage [2010/04/25(日) 21:32:36 ]
「メッセージループ」でぐぐるといいよ。

504 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:53:10 ]
>>492
ブアゥレ 噴いたww

505 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 22:10:01 ]
>>502-503さん
ありがとう。しばらく悩んでみます。

506 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 22:33:15 ]
そう言えばスレの流れとあんま関係ないんだけどさ
BitmapとかGraphicsとか、巷のサンプルだと必ずDisposeしてるじゃん?
GC来るまで残りっぱなのは理解してるけど、マネージリソースなんだから
そんな明示的にせんでもいいような気がするんだけど
なんか理由あるん?

507 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 22:51:33 ]
GraphicsもBitmapもどっちもアンマネージリソース抱えてるよ
Bitmapなんか実体はほとんどアンマネージメモリに置かれてるわけだし

508 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 02:28:31 ]
>>507
ソースある?

509 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 05:25:18 ]
>>480
少なくともVistaまでのAPIで透明の上にClearTypeで描画することはできない。
これはClearTypeの技術上仕方がない。
だからIEとかグラスの上に乗せるテキストはClearTypeじゃなくてただのアンチエイリアシングになっている。

直接の解決策ではないが.NET 4.0のWPFでは自己責任で透明の上にClearTypeで描画できるようになった。
Direct2Dは調べてないので知らないができるかもしれない。

510 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 05:54:41 ]
>>508
ReflectorでSystem.Drawing.dllを逆アセンブルしてみると分かるが、
これはGDI+のラッパーだから。



511 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 06:07:00 ]
ハンドル持ってる時点で分かると思うんだがなぁ

512 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 06:18:24 ]
IDisposableが継承してるならDisposeしろ。
GCで解決するならIDisposable継承しない、するな。

513 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 08:53:14 ]
IDisposableってのは、「Disposeしろ!」っていう開発者からのメッセージだから。

514 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 11:18:15 ]
アクションゲームなのだとスターを取ると無敵とかありますよね
他にもフラワーをとったら火が出たりするのとかメタル化したりとか
こういうのをやるときにそのキャラクターのクラスにフラグを持たせる方法もあると思いますが
そうしないで外からそのキャラクターのインスタンスに機能を拡張するのはどうすればいいでしょうか

まあ、上の例位だと、あたり判定の部分にデリゲードを使って
その部分を差し替えるとかでもいいかもしれませんが
はじめからyを押された時の処理を描くつもりがなくてそういう関数を用意していない時とかに
フラワーとったらどうしたらいいでしょうか。


515 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 11:19:40 ]
>>514
IronPython

516 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 11:29:06 ]
>>515
ありがとうございます
今ちょっとぐぐってみました
.Netから使えるスプリクト言語みたいなものですか?
ちょっと調べてやってみます.

517 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 11:30:53 ]
オブジェクト指向を勉強したら>>514みたいに考えたくなるのはよくわかるけど
特にゲームは実際やってみるとやっぱり上から神様が管理しないと難しいよ

518 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 11:34:04 ]
>>517
そうですね痛感してますw
でも趣味の勉強なのでいろいろ試してみたいと思います。

519 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 12:10:47 ]
ゲームはソース読んで勉強するのが一番わかり易いと思う

520 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:05:19 ]
DataTableに自作のクラスを入れることができますか?
入れようとするとToStringの中身が入ってしまうようですが。



521 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:14:59 ]
できますん

522 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:40:23 ]
>>514
継承できなければ委譲。拡張メソッドで行ける場合もある。

523 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:58:42 ]
>>514
has-aでいいんじゃない?
Marioをコンストラクタで受け取る
FlowerMarioクラスを作ってやればいいと思う
と、どう考えても回答者側の知識量ではない俺がいってみる。

524 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:59:52 ]
>>520
できるよ
単に表示されるときにToStringが呼ばれてるだけでしょ

525 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 15:04:26 ]
>>523
それは無意味
MarioとFlowerMarioの間に継承関係が無いなら
アプリケーションがFlowerMarioをあらかじめ知っていないといけない

526 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 15:07:05 ]
>>525
ああそうだね、じゃあ両方にインターフェースをつけるとか

527 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 15:07:30 ]
>>512
Disposeできない時のためにFinalizeがあるんじゃないの

528 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 15:09:56 ]
>>514
ステートマシンを内部に持てばいいんじゃないの、と適当言ってみる
それをオブザーバーパターンで外から操作とか

529 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 15:13:24 ]
Decoratorとか?
まあゲームだったら結局仕様をきっちり決めて決め打ちが一番いいと思うけど

530 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 15:21:44 ]
ゲームの場合、一度納品してから仕様変更なんて、基本的にはないだろうしな。



531 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 15:26:41 ]
ゲームのキャラクターなんか激しく周りの環境に依存するんだから
プラグイン的な拡張をやろうとすると結局グローバル環境的なものを丸ごと渡すことになって
あんまり意味が無さそう

532 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 15:38:43 ]
ありがとうございます
>>519-531
Decoratorパターンていうんですね>>526さんの
方法は一応考えたんですが、羽と花をとったときに
両方の効果を使える用にしたいなと思いまして。

>>528
調べてみます

拡張性に意味はないかもしれませんが勉強なので。

533 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 16:04:32 ]
>>521,524
ありがとう
次のようなコードで試したんですが、使い方間違ってますか?
foreach( DataRow row in table.Rows )
{
row["col1"] = new MyClass();
MyClass obj = row["col1"] as MyClass; //失敗する
}

534 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 16:16:39 ]
それ、col1列のDataColumnのDataTypeがStringになってる

535 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 16:19:26 ]
>>523
重要なことだからつっこませてもらうと、MarioがFireFlowerを取るとFireMarioになるんです。
Luigiクラスはいりません。バグの元ですから。

536 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 16:21:04 ]
>>530
最近はオンラインアップデートがあるからなんとも言えなくなってきたかも。
追加要素という名のアンロックは別としても、修正パッチあたるよ。

537 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 16:29:22 ]
てか、MODだろ

538 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 16:50:34 ]
>>534
おぉ、できました。
ありがとう

539 名前:536 mailto:sage [2010/04/26(月) 17:00:05 ]
ああ、家庭用ゲームだと思い込んでレスした

540 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 18:32:54 ]
>>523
has-aならStateをキャラクターとアイテムが持ったらいいんじゃね?
FireStateを持ったFireFlowerをMarioがとるとMarioがFireStateを持つようにする



541 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 20:14:52 ]
正直、マリオ程度のゲームなら
愚直にステート値でswitchするコードを書くほうが結局分かりやすいと思う。
こういうの、最近はすっかり「不吉な臭い」扱いになっちゃてるけどw

デリゲートやインターフェイス使ってストラテージパターンみたいなことしても、
自己満足以上の効果はないと思う。

542 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 21:59:06 ]
風マリオと雷マリオと闇マリオと土マリオとマリエと・・・
stateの量の問題?

543 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 22:01:16 ]
実際のゲーム機の開発でそこまで綺麗にクラス使ってるのかね?

544 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 23:01:59 ]
ゲーム機のゲームも結構な規模になってるだろし
それなりに綺麗な設計せざるを得なくなってるんじゃないかね?

545 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 23:18:51 ]
家庭用ゲームのソースコードなんて見る機会無いからね。
このスレに業界人は居るのかなぁ。

546 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 01:35:19 ]
テートスとかジーラテはスーコーあげあげだからねー
ウィチスーでスーケーしてるほうが現実見てるってyou know?

547 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 01:45:26 ]
日本語でおk

548 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 02:25:00 ]
StateまたはStrategypatternは時間がかかります。
switch caseを使用するのは現実的です。理解?

549 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 02:54:50 ]
把握した

550 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 06:59:08 ]
スーコーあげあげいいなw
スーコーマシマシ!



551 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 21:27:43 ]
object同士でプリミティブ型であれば
ある程度大小比較してくれる関数ってありますか?
具体的に言うとstringとint(byteなど)で比較を
正しく行いたいのですが。

552 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 21:39:01 ]
"a"と100のどっちが大きいかなんか定義次第なんだから正しい比較も何もないだろ

553 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 21:41:11 ]
どうやって"one"と5を比較できると思うんだ?
数値に変換できる文字列なら、数値に変換して比較するしかなかろう。

554 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 21:49:10 ]
int.Parse

555 名前:551 mailto:sage [2010/04/27(火) 21:56:06 ]
書き忘れました。
型が同じことが前提です。

>>552-554
ありがとう
やはりParseが一般的ですか。
DataViewもParseで比較してるのかな。

556 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 22:04:26 ]
型が同じって、Objectに入ってるInt32同士を比較したいってことなのか?
ならComparerクラスとか

557 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 22:13:55 ]
もう、自分がやろうとしていることを意味的に把握してないから人にうまく説明できないわけで、
その時点でちょっと.....

558 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 22:15:50 ]
関係ないけどstringやobjectは組み込み型だけどプリミティブ型ではないよ

559 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 22:55:53 ]
>>502
なぬ?

>>512
残念ながら一貫してそうはなってない。


560 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 23:55:42 ]
まあ確かにWin9xでなきゃ目くじら立ててDisposeする必要がないものでもIDisposable
実装してたりするし

関係ないけどインターフェイスを「継承」する、って言い回しはJava方面の方言?
それとも単にありがちな誤用ってだけなのか。



561 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:03:00 ]
ありがちな誤用

562 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:03:04 ]
>>560
C#方言。

インターフェイスの概要
インターフェイスには、次の特徴があります。

インターフェイスは抽象基本クラスに似ています。インターフェイスを継承する非抽象型は、すべてのインターフェイス メンバを実装する必要があります。

インターフェイスは直接インスタンス化できません。

インターフェイスには、イベント、インデクサ、メソッド、およびプロパティを含めることができます。

インターフェイスには、メソッドの実装が含まれません。

クラスと構造体は、複数のインターフェイスを継承できます。

インターフェイス自体が複数のインターフェイスを継承できます。


563 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:06:37 ]
>>555
型が同じなら、IComparableにキャストしてCompareToするとか。
codepad.org/m37TS28P

564 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:09:13 ]
かと思ったら、Javaでも使ってるな。 interface inheritance

言語規定より。
This (multiple) interface inheritance allows objects to support (multiple) common behaviors without sharing any implementation.
この(多重)インタフェース継承は,オブジェクトがいかなる実装も共有せずに(多重の)共通的な振る舞いをサポートすることを可能とする。


565 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:14:38 ]
インターフェースはインターフェースを継承できる

566 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:15:28 ]
>>565
なるほど、それが「実装」だったら確かにおかしいな。

567 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:38:38 ]
Javaだと、implements と extends とキーワード異なるけれども、C#だと、どっちもコロンだから用語を忘れてしまうんだな。

568 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 02:12:26 ]
クラスがインターフェースを継承している時点で実装があるはずなんだから、継承だけ使えば意味通じるでしょ

569 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 02:19:02 ]
>>565


570 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 07:58:33 ]
>具体的に言うとstringとint(byteなど)で比較を
>正しく行いたいのですが。

>型が同じことが前提です。
どっちだよw



571 名前:デフォルトの名無しさん [2010/04/28(水) 08:01:22 ]
>>551
遅レスだけどこんなのダメだっけ
if (obj1 is IComparable)
{
return (obj1 as IComparable).CompareTo(obj2);
}

572 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 11:06:44 ]
インターフェースて使った事ないんだけど
どういうときに使うの?

573 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 11:40:01 ]
>>572
継承関係にない型の間に共通の機能を持たせて、同じように扱いたいとき。
>>563,571がまさにそれ。

C#の言語仕様(foreachだのusingだの)とも密接に結びついているので、
知らず知らずのうちにインターフェースを活用しているはず。
たとえば、IEnumerableを実装しさえすれば、どんな型でもforeachで列挙できる。

574 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 11:53:40 ]
>>563
>>571
これって文字の比較であって、数値の比較じゃないでしょ?

575 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 11:55:54 ]
>>574
何を言ってるんだ

576 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:02:44 ]
>>574
冷静になるんだ

577 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:34:27 ]
あるクラスを継承してメンバ関数だけオーバーライドして使いたい場合
元のクラスで扱っても大丈夫でしたっけ?

578 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:36:13 ]
>元のクラスで扱っても大丈夫でしたっけ?
インスタンスを作った後も元のクラスで扱っても大丈夫でしたっけ?

579 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:38:51 ]
元のクラスで扱うってのはどういうことなんだ?
継承元のクラスにキャストするとかそういうこと?

580 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:41:53 ]
>>579
ゲームの中にでてくる物体(障害物、自機、敵など)はすべて座標系など特定の
情報を持つという部分では共通ですが、動きだけが違うので管理上は継承前の
クラスで管理して、動きに関連するメンバ関数だけを差し替えを実現したい・・
という感じです



581 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:46:35 ]
オーバーライドしなくてもいいんじゃないか?
継承先で個別に実装すれば

100%書き換えることが前提になってる感じだからむしろIFとかにしてみるとか・・・
いや・・・いろいろ方法はあると思うが 継承元で関数書いてもどうせ空の実装とかにしかならんだろうし
オーバーライドしなけりゃ元の動作のまんまになってしまうのはバグの元だと思うんだ・・・

582 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:47:23 ]
>>580
普通にできるが

583 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:49:39 ]
>>581
むかーしgcc上で書いた物を移植中なので.netなりの方法はないかなあと模索してたりします。
C時代は関数ポインタのテーブルを用意して・・・とかやってたんですけどね

>>582
どんな感じでやればいいですかね?

584 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:54:08 ]
>>583
いやだから基本クラスで動き意外の関数作って
継承したクラスで新しく動きの関数作ればいいだけだけど
何が問題なの?

585 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:58:17 ]
class 物体
{
public void 動き以外の処理(){}
}

class 自機:物体
{
 public void 動きの処理(){}
}

586 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:58:27 ]
>>584
Hogeクラスを継承したHogeA,HogeB・・・・・HogeZとかあったとして
管理はList<Hoge>として全体をまとめたいんです・・

587 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:58:42 ]
抽象クラス使えば?

588 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 13:03:24 ]
>>586
>>573

589 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 13:13:10 ]
関数ポインタ使っていたなら、そのまま構造体を抽象クラスにして、関数ポインタを仮想関数にしたら、完成のように思うが。

590 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 14:47:22 ]
>>577
やってみたらいいのに何でわざわざ面倒な手順を踏んでるんだ?



591 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 15:27:18 ]
まあvirtualでググればいいんじゃないかな!かな!
>>577

592 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 18:20:03 ]
模索している割には他の提案を聞き入れようとしない件について

もし判ってないならそれは技術力不足以外の何物でもないな






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

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

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