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


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

【初心者歓迎】C/C++室 Ver.71【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 23:15:45 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

【前スレ】
【初心者歓迎】C/C++室 Ver.70【環境依存OK】
pc12.2ch.net/test/read.cgi/tech/1258873470/

【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
codepad.org/ (コンパイルもできるし出力結果も得られるのでお勧め)

◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。


281 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 21:04:04 ]
templeteってジェネリックってことで、おk?

282 名前:296 mailto:sage [2010/02/09(火) 21:06:55 ]
>>278
どうすればできますか?

また、その方法が紹介されているサイトとかあったら教えてください

283 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 21:09:04 ]
>>282
環境別な方法(一般的)と、大抵の環境で出来る方法があるが、どっちがいい?

284 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 21:13:43 ]
>>281
まあ表面的にはそう。


285 名前:281 mailto:sage [2010/02/09(火) 21:21:48 ]
>>284
thx

286 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 21:24:06 BE:1620859469-2BP(0)]
>>282

1. boost::filesystem
2. dirent.h
3. Win32 APIなどの環境別API
4. system("dir > temp");
5. __asm { 中略 int 1bh }

287 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:00:41 ]
#include <Hoge>としただけなのに、Hoge* h = new Hoge();とできるクラスには
namespaceが設定されていないんですか?

288 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:20:01 ]
#includeとクラスとnamespaceに何の関係が?

289 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:29:29 ]
>>288
いまいわからないから、質問しているわけで



290 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:33:31 BE:960508984-2BP(0)]
#define Hoge foo::HogeImpl

namespace foo
{
class HogeImpl { };
}

かもしれん

291 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:34:50 ]
基本的に指定しなければグロバールのネームスペースに所属させられる。
明示的にくくってやればおk。

292 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:38:41 ]
>>289
#include は、そこに書いてある名前のファイル (この場合では Hoge) の内容を、
あたかも直接書いたかのように取り込むだけです
例えばファイル Hoge の中身が

class Hoge {};

で、以下のソースコード

#include <Hoge>
int main(){ Hoge *h = new Hoge(); }

をコンパイルした場合、この #include <Hoge> の部分がファイル Hoge の中身に置き換わって

class Hoge {};
int main(){ Hoge *h = new Hoge(); }

と書いたかのようにコンパイルされます
ファイル Hoge に namespace が書いてあればそれは書いてあるように適用されるし、書いてなければ何もなしです

293 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:41:15 ]
C++では、enum型を==で比較するのはダメなのでしょうか。

294 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:41:35 ]
別にダメくない

295 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:44:11 ]
というか比較しまくる

296 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:48:20 BE:720382346-2BP(0)]
他にどうやって比較するのじゃ

297 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:49:04 ]
引き算

298 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:51:21 ]
多重定義

299 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:52:11 BE:480255528-2BP(0)]
2重switch



300 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:55:33 ]
>>291-292
thx

301 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:07:33 ]
あのーplacement new[]の使い方がいまいち解りません。

Hoge* h = new Hoge[100];っていうのを
placement new[]でやるには、Hogeにどんなnewを定義すればいいでしょうか?

302 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:30:29 ]
void *p = operator new(sizeof(Hoge)*100);
Hoge *h = (Hoge *)(new (p) Hoge[100]);

で大丈夫かな?
コンパイルは通るはずだけど。
(当然、Hogeにはデフォルトコンストラクタが必要。
デフォルト引数がある引数を持つコンストラクタで可能かは知らない)

ていうか、こうすると、
全部の要素に対して個々にデストラクタを呼び出してからメモリを解放するわけだし
だったらコンストラクタだって、(placement newを使って)個々に呼び出すだけで良いじゃない、という話になる。
それだったら、引数の制限も無いしね。

303 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:32:59 ]
placement newって実装に依存するって話を聞いたんだが正確な話ではどうなってんの?

304 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:34:48 ]
えー?
new[]が要素数をどこかに保存しているから実装依存、という話ではなくて?

305 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:38:33 ]
homepage2.nifty.com/well/Operator.html

ここの配置newのところに
コンパイラによって動作が異なるという問題があり
って書いてあるのが気になって

306 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:47:35 ]
void *p = ::operator new(sizeof(Hoge));
Hoge *h = new (p) Hoge;
// ここで普通にhを使う
h->~Hoge();
::operator delete(h);

というコードは、どのコンパイラでも通るし正常に動くと思う。
(例外対応してない点を除けば)
普通のnew演算子とdelete演算子のやっていることを
エミュレートしているだけだから。

307 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 01:11:53 ]
>>302
それ危ない。領域が足りない可能性が高い。
安全にやる方法は、いまのところ実装に依存する方法(実際に試してみるとか)しかない。
www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#476

308 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 01:59:04 ]
int main() {
  printf("xx");
}
returnを書かなくてもエラーにも警告にもならないのですが、
これはC++の仕様なんでしょうか、それとも環境依存なのでしょうか。
VC++2008を使っています。

309 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 02:13:03 ]
仕様



310 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:22:17 ]
using namespace とテンプレートの特殊化についてですが

template<> class hoge<std::string>
という特殊化を定義してて
使用者側がusing namespace std;を宣言していて
hoge<string>とした場合呼ばれるクラスは汎用のものなのか特殊化された物なのかどちらになるのでしょうか

311 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:23:03 ]
>>308
ttp://www.open-std.org/jtc1/sc22/wg21/ からたどれる current draft の
58、59頁には

If control reaches the end
of main without encountering a return statement, the effect is that of executing
return 0;

とある

312 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 11:52:32 ]
クラスのメンバ関数はいつから使用可能なのでしょうか?
コンストラクタの初期化子にメンバ関数の返り値をあてることは出来るのでしょうか?

313 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 12:15:13 ]
>>312
コンストラクタでメソッドが利用するメンバを初期化してたりしなければ問題ない;

314 名前:デフォルトの名無しさん [2010/02/10(水) 14:02:13 ]
Microsoft Visual C++ 2008 Express Edition SP1 のフォームアプリケーションでの質問です。
char配列若しくはwchar_t配列をテキストボックス(this->textBox1->Text)に表示したいのですが
単純に下のように代入しようと
 char str[256];
 this->textBox1->Text = str;
すると下のように出てしまいます。
 理由: 'char *' から 'System::String ^' へは変換できません。

テキストボックスにchar配列の内容を表示する方法を勉強できるサイトを教えてください。
よろしくお願いします。

315 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 14:15:35 ]
>>314
フォームだとC++の範疇じゃない、C++/CLIになる。
this->textBox1->Text = gcnew String(str);
とかかな。
とにかく、C++のサイト探しても見つかりにくいよ、C++/CLIで

316 名前:デフォルトの名無しさん [2010/02/10(水) 14:17:43 ]
>>315
本当にありがとうございます!!
C++/CLIで検索しつつ精進します。

317 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 14:17:56 ]
>>312
初期化子でthisを使うのは直接・間接を問わずバグの原因になりうる
だから初期化子でthisやメンバ関数を使うのは避けるべき
スコープに入ってからならthisやメンバも使っておk

318 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 14:35:09 ]
>>313
>>317
大丈夫かも知れないけど変なバグの温床になりやすいと言うことでしょうか
ならばstaticなメンバにすれば大丈夫なのでしょうか

319 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 14:48:45 ]
初期化子リストを使う段階ではオブジェクトが構築されてないのでthisが危険
初期化子リストは初期化される順番が決められていないので初期化順に依存するコードは危険
メンバ関数は基本的に構築が正確に済んでいるオブジェクトから呼び出されることを前提にしているから初期化子への代入目的には基本的には使えない
staticメンバは問題無いので使っていい



320 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 16:09:31 ]
vc2003+MFCのコンソールアプリについてですが、
入力待ち、処理中に閉じるボタンを押された際の処理方法を
教えてもらえないでしょうか。


321 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:28:27 ]
>初期化子リストは初期化される順番が決められていないので初期化順に依存するコードは危険
メンバの初期化順はメンバ変数が定義された順と決まってるだろう。

322 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:30:04 ]
あれちゃんと順番に書いてる奴いんの?めんどくさいんだけど

323 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:42:19 ]
危険 (キリッ

を放置するのが楽しいんじゃないか余計な突っ込み入れるなよぅ

324 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:49:19 ]
プログラマって性格悪いやつすごく多くね?

325 名前:デフォルトの名無しさん [2010/02/10(水) 18:57:01 ]
以下のプログラムで、shori内のa[][]の値をそっくりメインのdata[][]に渡すにはどうすればいいのかが分かりません。教えてください。グローバル変数にしないとだめですか?

void shori()
{
int a[2][4];

a[1][1] = 10;//などと適当な処理
}

int main()
{
int data[2][4];

shori();
return 0;
}

326 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:59:31 ]
void shori(int a[2][4])
{
a[1][1] = 10;
}

int main()
{
int data[2][4];
shori(data);
return 0;
}

327 名前:デフォルトの名無しさん [2010/02/10(水) 21:01:50 ]
>>326
解決しました ありがとうございます

328 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:24:52 ]
#include <iostream>
#include <fstream>
#include <iterator>

void cat(std::istream &s)
{
std::istreambuf_iterator<char> it = s, end;

while(it != end)
{
std::cout << *it;

++it;
}
}

int main(void)
{
std::ifstream s("Test.cpp");

cat(s);

return 0;
}

EffectiveC++のサンプルコードではこういう感じでファイル名を渡す形ではなくそのままストリームを渡していました
なぜこの形式を使うんでしょうか?ファイル名を渡すのと比べてどんな利点があるんでしょう?

329 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:28:29 BE:540287429-2BP(0)]
ファイル以外にも使えるようにじゃないか



330 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:29:41 ]
>>328
ストリームをfstreamからiostreamやstringstreamに置き換えても
そのまま動くからじゃね?汎用化というか

331 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:37:35 ]
Oh! ナルホド!

332 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:07:19 ]
>>322
コンパイラによっては順番に書けやって怒られるぞ。

333 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:26:25 ]
>310
string が std::string を指していて、かつ hoge<std::string> が可視なら特殊化されたものを使うだろ。
template だからって変なこと考える必要はないと思うよ。

334 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:30:57 ]
別のファイルでstd::stringを自分で定義してhoge<std::string>ってしたらどうなるの?

335 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:32:18 BE:1080572494-2BP(0)]
std内に何かを追加した時点で
動作が保障されないんだっけ?

336 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:33:25 ]
stdに追加していいのはテンプレートの特殊化だけだったような

337 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:36:57 ]
>>332
> コンパイラによっては順番に書けやって怒られるぞ。
そんなクソコンパイラもあるのか。


338 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:39:51 ]
> std内に何かを追加した時点で
> 動作が保障されないんだっけ?
そう。未定義の動作になる。
ただし特殊化を除く。

> stdに追加していいのはテンプレートの特殊化だけだったような
その通り。



339 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:59:33 ]
定義したくらを

class Hoge
{
....
}

Hoge h[100];

ってやるとエラーになっちゃうんですけど
h[100]って定義するためには何を自分のクラスに
記述すればいいのでしょうか。





340 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:02:32 ]
デフォルトコンストラクタ

341 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:02:36 ]
Hoge* h = new Hoge[100];

配列形式はPODしか使えない
おそらくコンストラクタを持っているのだろう

342 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:08:47 ]
class Hoge {
int i;
public:
void seti(int j) { i = j; }
void printi() const { std::cout << i << std::endl; }
} hoge[100];

int main()
{
for (int i = 0; i < 100; i++)
hoge[i].seti(i);
for (int i = 0; i < 100; i++)
hoge[i].printi();
}

悪い、勘違いしていたようだ
>>340さんの言う通りデフォルトコンストラクタが抜けているんだろうな
デフォルト引数などを使って解決する事もできる

343 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 14:56:12 ]
DLLの中の人が使うための共有メモリがあるとします
このメモリの確保・開放はDllMainでやるか、グローバルスマポでやるか
どっちが安全でしょうか?

344 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:10:31 ]
DLLの中の人次第

345 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:40:54 ]
>>343
グローバル変数やDllMainは使わない方法を考えるべきだね。


346 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:20:02 ]
エディタのCPad for bccを
VisualC++のコンパイラに適応させるにはどうしたらいいですか?
コンパイラの場所以外になにか設定が必要でしょうか?


347 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:31:28 ]
>>346
普通はそんな使い方しない。
IDE使えばいいんじゃないかな??

348 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:42:06 ]
>>347
IDEがちょっと重いのでエディタでと変えようとしてたんですが、無理ですかね?


349 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:49:19 ]
>>348
一応、CL自体はコマンドラインから使えるようにはなってるはずだが、もうズーットつかってないなぁ。
>cl /help でヘルプが見れたので適時変換して使えるようにすればできるかも。
ただ、労力には見合わないと思う。



350 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:52:25 BE:1200636858-2BP(0)]
プロジェクトを用意してdevenvがいいんじゃないか

351 名前:296 mailto:sage [2010/02/11(木) 17:56:53 ]
たしかにVC++は重い(スタートメニューが)

352 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 17:58:15 ]
名前間違えた

353 名前:デフォルトの名無しさん [2010/02/11(木) 18:22:28 ]
-lm でlibm.aをリンクするらしいですが、
じゃあ僕もlib?.aファイル作ってみたいです
mingw32 gcc 4.4.1 Windows2000 SP4ですが
どうやって生成するんですか?

354 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 19:31:27 ]
ld使え

355 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 19:55:04 ]
コンストラクにstd::bad_allocをつける
場合、宣言の部分にだけかけばいいのでしょうか。

誰かサンプル書いて

356 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 20:16:48 ]
つーかコンストラクタがstd::bad_allocを投げる場合は大抵のOSでは
後処理も出来ない状態の事が多いな

357 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:05:47 ]
「bad_allocをつける」って意味がわからない。
例外指定のことだろうか。

358 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:42:47 ]
>>356
じゃあ書かない方がいいのですね。

コンストラクタでメモリ確保とか何か重要な
C++は言語の不備なのでしょうけど、失敗が
ある場合放置するしかないのですよね?

359 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:47:28 ]
bad_allocに限って言えばなにも考えずにmainでキャッチしてエラー通知して終了でいいと思う



360 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:48:06 ]
>>358
メモリが足らないって、どの言語を使っていてもあるでしょ。

361 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:50:56 ]
includeする時に、*.hが有るのと無いのがあるじゃん
あれって何が違うの?

362 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:57:16 ]
>>361
C の標準ヘッダは .h。
C++ の標準ヘッダは拡張子なし。
非標準ヘッダは適当。

363 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:58:00 ]
ファイル名が違う
#include は *.h でも *.txt でも *.hoge でもC言語の文法に合った内容のテキストファイルならなんでも #include できる

364 名前:361 mailto:sage [2010/02/12(金) 00:00:33 ]
>>362-363
ありがとう。知らなかったよ

365 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 07:48:20 ]
便乗で

""と<>両方あるけどあれもあんまり意味はない?

366 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:02:22 ]
""だとカレントディレクトリを最初に検索
<>だとシステムのヘッダのみを検索

367 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:53:22 ]
>>366
www.kijineko.co.jp/tech/superstitions/quoted-headername-is-searched-for-from-cwd.html

368 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 16:37:15 ]
inlineにするときに、これはまず展開されねーなっていう場合ってどんなのがある?
確実にダメなのって関数ポインタを使ってる時ぐらいかな?

369 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 16:45:49 ]
関数ポインタって、それ仮想関数のことも当てはまるじゃん。



370 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 17:48:18 ]
おまいら配置new/deleteって普段つこうとるの?

371 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:11:38 ]
特殊な状況でしか塚湾だろう。

372 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:37:22 ]
C言語で、windows.hのSleep()ではないウエイトをかける方法ありませんか?

373 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:41:14 ]
timeGetTimeを使う

374 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:49:39 ]
FindFirstFileを使いたいんですけれど
どうすれば使えるかがわかりません

何をどうすればいいのですか?

375 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:51:26 ]
まずwinapiスレに行きます

376 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:53:04 ]
次に手を洗います

377 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:53:52 ]
ググって出たソースをパクる

378 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:54:10 ]
schiphol.2ch.net/gameurawaza/

379 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:54:53 ]
誤爆



380 名前:デフォルトの名無しさん [2010/02/12(金) 21:59:09 ]
extern って、

#ifdef _MAIN_
int a, b, c;
char d, e, f;
struct _ST g, h, i;
class _CL j, k, l;
#else
extern int a, b, c;
extern char d, e, f;
extern struct _ST g, h, i;
extern class _CL j, k, l;
#endif

こういう風に使いますよね。
でも、これだと宣言と不便ですよね。

#ifndef _MAIN_
extern {
#endif
int a, b, c;
char d, e, f;
struct _ST g, h, i;
class _CL j, k, l;
#ifndef _MAIN_
}
#endif

こんな感じに一気に extern できないのでしょうか?

381 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 22:03:01 ]
#ifdef MAIN
#define EXTERN
#else
#define EXTERN extern
#endif

EXTERN int a, b, c;






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

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

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