Win32API質問箱 Build ..
[2ch|▼Menu]
574:デフォルトの名無しさん
07/05/02 10:55:19
JPEGはハフマンの強さを見せ付けられる圧縮技術。

575:デフォルトの名無しさん
07/05/02 10:59:50
フーリエ先生も自分の考えてたことが数百年後に役に立つと予想出来たであろうか

576:デフォルトの名無しさん
07/05/02 11:17:38
>>572
冷凍食品は不可逆でないのか?

577:デフォルトの名無しさん
07/05/02 11:36:04
それは屁理屈

展開でいいじゃん

578:デフォルトの名無しさん
07/05/02 11:51:53
素材そのものではないのに
素材の名前をつけた料理には違和感ありまくり

579:デフォルトの名無しさん
07/05/02 11:53:06
タイヤキ

580:デフォルトの名無しさん
07/05/02 11:56:26
ミスタードーナツのメニュー

581:デフォルトの名無しさん
07/05/02 12:06:29
可逆だろうが不可逆だろうが圧縮に対して解凍は違和感あり
展開・復元でいいでしょ
不可逆に対して復元は語弊あるけど

582:デフォルトの名無しさん
07/05/02 12:12:55
解凍って言い回しはアーカイブファイルでないとしっくり来ない

まあ意味は伝わるからどうでもいいけどね

583:デフォルトの名無しさん
07/05/02 12:21:52
まあな。文脈さえ読めればおk
宮廷に仕えてるわけでもないしねw

584:デフォルトの名無しさん
07/05/02 12:38:11
解凍って言い回しはLHarc(現LHAの前身)の頃に作者の吉田さんが使い始めたんだよね。
当時のパソ通コミュで(それこそvoidも含めてw)多くのエンジニアからやめろと言われたにも関わらず。
吉田さんが自粛してくれていればこんなことには……

585:デフォルトの名無しさん
07/05/02 12:46:48
>>578
Jリーグカレーとか?

586:デフォルトの名無しさん
07/05/02 14:14:38
おかわり

587:デフォルトの名無しさん
07/05/02 15:06:28
どうでもいい

588:デフォルトの名無しさん
07/05/02 15:44:05
>>555
ありがとうございます。
こんな感じでやってみたのですがダメでした・・・・
どこが悪いでしょうか

BYTE *drv = "MySQL ODBC 3.51 Driver";
BYTE att[512];
::wsprintf( &att[0], "DSN=%s\0", "test1" );
::wsprintf( &att[::lstrlen(att)+1], "Server=%s\0", "testserver" );
::wsprintf( &att[::lstrlen(att)+1], "UID=%s\0", "root" );
::wsprintf( &att[::lstrlen(att)+1], "PWD=%s\0", "1234" );
::wsprintf( &att[::lstrlen(att)+1], "DATABASE=%s\0\0", "testdb" );
::SQLConfigDataSource( NULL, ODBC_ADD_SYS_DSN, drv, att );


589:デフォルトの名無しさん
07/05/02 15:52:35
文字列を文字列として渡す関数に \0 をつけるのは無意味
よって、\0 も \0\0 も意味がない。
それ全部はずした上で、配列に直接\0入れてやれ

590:デフォルトの名無しさん
07/05/02 15:58:53
>>589
意味はないけど間違いでもない。
wsprintfで入れてくれるから後から入れるのはもっと無意味

591:デフォルトの名無しさん
07/05/02 16:01:34
>>590
あのさ、直接入れるのは\0\0と2つ重ねる話なんだけど

592:デフォルトの名無しさん
07/05/02 16:04:11
あと、strlenだと、最初の\0 間でしか数えないから、sprintfの戻り値を足してやれ

593:デフォルトの名無しさん
07/05/02 16:04:22
HINSTANCE hLib = LoadLibrary("xxx.dll");
を実行すると、下記のエラーが出力されます。

error C2664: 'LoadLibraryW' : 1 番目の引数を 'const char [12]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。


解決方法を教えてください。

参考ページ:URLリンク(homepage2.nifty.com)
環境:WindowsXP, Visual C++ EE 2005


594:デフォルトの名無しさん
07/05/02 16:09:52
>>588
最初のstrlen(att)+1以外のstrlen(att)+1が全て間違っている。
それでは長さが全部同じになるから、先頭アドレスは足していかないと

595:デフォルトの名無しさん
07/05/02 16:09:59
>>593
HINSTANCE hLib = LoadLibrary(_T("xxx.dll"));

で、どうか?

596:デフォルトの名無しさん
07/05/02 16:17:18
>>595

ありがとうございます。
読み込めました。


597:デフォルトの名無しさん
07/05/02 16:48:27
初歩的な質問で申し訳ありません。

VC++でダイアログベースのプログラムの作成中です。
プロシージャ内でクラスを宣言して使用したいのですが、エラーになります。
たとえば以下のようなプログラムのがあるとします(Fooクラスが別途存在します)

LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
 switch (msg) {
  case WM_INITDIALOG:
   Foo foo;
   return FALSE;
  case WM_HOGE:
   foo.hoge();
  default:
   return FALSE;
 }
 return TRUE;
}

この場合、以下のエラーが出力されます
 'foo' の初期化が 'case' ラベルによって行われませんでした。

調べた結果、WM_HOGE内でFooクラスの宣言がなされてない(初期化がされていない)のでエラーになっている、ということはわかりました。

ここで質問なのですが、Fooクラスの宣言というのは一般的にどこで行うべきなのでしょうか?
プロシージャの最初のswitchの外で宣言してしまってもいいものなのでしょうか。

598:デフォルトの名無しさん
07/05/02 16:51:41
>>588
DriverとAttributesは以下で判断

@.ODBCドライバを落とし、インストールする。
 URLリンク(dev.mysql.com)

A.コンパネから“管理ツール”の“データソース(ODBC)”を開く。
B.ファイルDNSタブから[追加]ボタンを押す・
C.データソースMySQL ODBC 3.51 Driverを選択し、[次へ]を押す。
D.データソース名に"MAROYUKI"と入力し、[次へ]を押す。
E.とりあえず完了させる。
F.次にConnecter/ODBCダイアログが開くので、必要情報を代入し[OK]を押す。
G.\Program Files\Common Files\ODBC\Data SourcesフォルダにMAROYUKI.dsnができる。
H.MAROYUKI.dsnをテキストエディタで開き、lpszDriverとlpszAttributesに一致するか確認。

599:デフォルトの名無しさん
07/05/02 16:52:15
LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
 switch (msg) {
  case WM_INITDIALOG:
   {
     Foo foo;
   }
   return FALSE;
  case WM_HOGE:
   foo.hoge();
  default:
   return FALSE;
 }
 return TRUE;
}


こうすればいいがー

600:デフォルトの名無しさん
07/05/02 16:54:30
>>594
こんなのSQLConfigDataSource()を呼ぶ所でattの512バイトがどうなってるのか見ればすぐわかるのにね。

601:デフォルトの名無しさん
07/05/02 16:54:37
しまった!
↓のcaseでfooつかっとるかこれ!
んじゃ、外に定義でいいんじゃね?

602:デフォルトの名無しさん
07/05/02 16:55:07
>>599
それは、case WM_HOGE でfooが使えないべ

>>597
switchの外でいいよ。
case WM_HOGE の時に Foo foo を通過してないまま foo を使うことになるべ。

603:デフォルトの名無しさん
07/05/02 17:00:29
フォールスルー考えてのことならいいんだが
期待しているのは static のような気がする

604:デフォルトの名無しさん
07/05/02 17:06:56
要は、そのfooをどこでどう使いたいか、どういう仕様か、によりけりだな。

605:597
07/05/02 17:07:02
レスありがとうございます。

LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
 Foo foo; // ←switchの外で宣言
 switch (msg) {
  case WM_INITDIALOG:
   return FALSE;
  case WM_HOGE:
   foo.hoge();
  default:
   return FALSE;
 }
 return TRUE;
}

というプログラムで期待通りの動作を確認しました。
ありがとうございました。

606:デフォルトの名無しさん
07/05/02 17:07:48
うーむ、INIT_DIALOGはなんだったんだろうw

607:デフォルトの名無しさん
07/05/02 17:44:03
レンジのアイコンだから解凍で良いだろ

608:デフォルトの名無しさん
07/05/02 17:54:55
蒸し返すなw

609:デフォルトの名無しさん
07/05/02 18:02:20
>>607
アホかい。
解凍と言う用語があったから、電子レンジのアイコンが作られたに決まっておろうが。

>>584
吉田じゃなくて吉崎だな。

610:デフォルトの名無しさん
07/05/02 18:11:15
石化なんて表現もあったからなw

611:デフォルトの名無しさん
07/05/02 18:18:52
俺:「ファイルの圧縮で、反対の言葉が解凍ってのはどうかと話題がでてるが、
    姉ちゃんならどういう言葉が妥当だと思う?
姉:「うーん、レンジでチンして解凍みたいだから、解チンってのはどう?」
俺:( ゚д゚)ポカーン



612:デフォルトの名無しさん
07/05/02 18:21:16
つまらん

613:デフォルトの名無しさん
07/05/02 18:22:28
圧縮の対義語は伸張やろが!

614:デフォルトの名無しさん
07/05/02 18:59:27
圧縮解凍って言葉が昔から対になってんだから小さい事気にすんな
日本語して意味がおかしくて気に食わないならpack、unpackって言え

615:デフォルトの名無しさん
07/05/02 19:12:26
圧縮/伸張、compress/decompressでFA。

616:デフォルトの名無しさん
07/05/02 19:39:26
>>614
おいおい、昔って言ったって、吉崎某が使い始めてから未だ20年経ってないぞ。
#あ、充分昔かw

617:デフォルトの名無しさん
07/05/02 19:45:45
DB関係の作った事ないし詳しくないからとんでもなく見当違いな事言ってるかもしれないけど教えてくれ。
APIでDB触れるのってODBCだけ?oo4oとかADOとかDAOとかAPIとして持ってないのか?


618:デフォルトの名無しさん
07/05/02 20:04:43
符号化の結果縮むのが圧縮。
符号化の結果伸びるのが伸長。
復号化が解凍。

じゃないのか?

619:デフォルトの名無しさん
07/05/02 20:38:55
>>617
何を聞きたいのかよくわからん
それらは最終的にODBC使うんじゃなかったっけ

620:デフォルトの名無しさん
07/05/02 21:04:09
エンコード/デコードで

621:デフォルトの名無しさん
07/05/02 21:39:49
>>616
実際にはもっと昔から使われていた。
それ以前にはスタンダードと言えるほど広まっているツールが
なかったからLHA発祥という誤解が定着してしまっただけだ。

622:デフォルトの名無しさん
07/05/02 21:57:53
っYZ1

623:デフォルトの名無しさん
07/05/02 22:09:52
LHA は圧縮だけじゃなくて書庫の機能も持っているから、展開が妥当だと

624:デフォルトの名無しさん
07/05/02 22:37:24
>>619
そうだったのか。いや俺も実際何を聞きたいのかよくわからないんだがw

つまりODBCAPI以外にDBを触れるAPIがあったら知りたかった

625:デフォルトの名無しさん
07/05/02 22:52:48
oo4oもADOもDAOも、みな関数と言う形ではAPIを持っていないと思う。

626:デフォルトの名無しさん
07/05/02 23:02:01
oo4oなつかしいなw

627:デフォルトの名無しさん
07/05/02 23:11:18
>>611
俺が「それはカユイちんこみたいだな」って言ってたって言っておけ
あと「俺のチンコが痒いです」とも言っておけ

628:デフォルトの名無しさん
07/05/02 23:32:08
>>585
うぐいすパンとか?

629:デフォルトの名無しさん
07/05/02 23:35:39
うぐいすパンはうぐいす入ってるだろ

630:デフォルトの名無しさん
07/05/02 23:51:47
東京ばな奈とか?

631:デフォルトの名無しさん
07/05/02 23:58:26
JETはどうした

632:デフォルトの名無しさん
07/05/03 00:04:46
だからコンパイルエラーはWin32APIとはなんも関係ないっつーの

633:デフォルトの名無しさん
07/05/03 04:08:24
>605
static つけないと呼び出されるたびに初期化されるんじゃないの
まあ動くならいいけど今後のこともあるし

634:デフォルトの名無しさん
07/05/03 04:19:50
static 必要っぽい気はするな。
WM_INITDIALOG で new してユーザ領域にそのポインタを置いて
それを使うともっといいんじゃないかとは思うけど。
同時に複数起動する必要がないならいいけど。

635:デフォルトの名無しさん
07/05/03 04:28:26
WM_PAINT内で
BeginPaint〜EndPaintを二回以上やると
2回目からの描画内容が画面に出ないんですけど
どうしてですか?

636:デフォルトの名無しさん
07/05/03 04:35:46
EndPaint で更新すべき領域をクリアしてしまうんじゃない?

637:デフォルトの名無しさん
07/05/03 08:17:23
フォアグラウンドのIMEの状態を調べてIME_CMODE_ROMANがない場合VK_KANAを有効にしたいのですが。
チェックするタイミングはキーフックとタイマーのどちらが良いでしょうか?

638:デフォルトの名無しさん
07/05/03 08:46:24
>>637
その解法は、両方どつぼりそうな予感。

639:デフォルトの名無しさん
07/05/03 08:49:04
入力対象が確定していれば、
そいつのWM_SETFOCUSメッセージ時じゃだめか?

640:デフォルトの名無しさん
07/05/03 11:48:30
状態が変化する前に、処理すればいいのに

641:デフォルトの名無しさん
07/05/03 11:53:57
WM_PAINTのタイミングで描画しています
ウィンドウを大きくするときは再描画されるのですが小さくするときはされません
どちらでも再描画されるようにするにはどうすればよいでしょうか?

642:デフォルトの名無しさん
07/05/03 12:08:16
>>641
もう少しくやしく。
もしかしたら、違う要因かも知れないから。

643:デフォルトの名無しさん
07/05/03 12:09:51
WS_HREDRAW/WS_VREDRAWとか?

644:641
07/05/03 12:28:08
>>642
最大化ボタンを押したりウィンドウの右下をドラッグしてウィンドウを大きくした場合、
それに連動してウィンドウ内の画像が書き換えられます。
そのときにcase WM_PAINT:を通過していることをMESSAGEBOXを表示させて確認しました

最大化から元に戻す場合やウィンドウの右下をドラッグしてウィンドウを小さくした場合、
ウィンドウ内は再描画されません
(同様にMESSAGEBOXで確認しました)


645:デフォルトの名無しさん
07/05/03 12:28:47
>>643
MSDNやGoogleを検索しましたがなかなか情報がでてきません
関連資料あればお願いします

646:デフォルトの名無しさん
07/05/03 13:03:47
>>645
CS_HREDRAW CS_VREDRAW

647:デフォルトの名無しさん
07/05/03 13:08:19
>>644
WM_PAINT描画部さらせる?

648:デフォルトの名無しさん
07/05/03 13:14:26
>>647
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    switch( msg )
    {
        case WM_DESTROY:
            Cleanup();
            PostQuitMessage( 0 );
            return 0;

        case WM_PAINT:
            MessageBox(hWnd, "ok", "check", 0);
            Render();
            ValidateRect( hWnd, NULL );
            return 0;

    }

    return DefWindowProc( hWnd, msg, wParam, lParam );
}


649:デフォルトの名無しさん
07/05/03 13:26:03
エクスプローラの縮小版表示で独自の画像形式を表示させたいんだけど、
どうやったら出来ますか?

650:デフォルトの名無しさん
07/05/03 13:27:39
>>649
独自の画像形式とは?
自分が考えたオリジナルフォーマット?


651:デフォルトの名無しさん
07/05/03 13:32:41
>>648
ソースあげ

652:649
07/05/03 13:33:52
>>650
自分が考えたフォーマットもありますし、RLAなどの標準で表示されないフォーマットもあります。


653:デフォルトの名無しさん
07/05/03 13:34:55
>>649
IExtractImage を実装してレジストリに登録

654:デフォルトの名無しさん
07/05/03 13:41:28
>>649

>>653の補足
URLリンク(msdn.microsoft.com)

655:デフォルトの名無しさん
07/05/03 13:52:42
>>641
WM_SIZE で InvalidateRect すれば?

656:デフォルトの名無しさん
07/05/03 13:57:26
>>655
WM_PAINTをWM_SIZEに書き換えたところうまくいきました

相談にのっていただいた皆様本当にありがとうございました

657:デフォルトの名無しさん
07/05/03 14:03:31
WM_SIZE でレンダリングしたのか。
それっていいのか?
というか、WM_PAINT は処理しないのか?

658:デフォルトの名無しさん
07/05/03 14:03:42
>>656
乙。
連休を楽しめ。

659:デフォルトの名無しさん
07/05/03 14:06:00
>>657
WM_SIZEでInvalidateRectをコールし、
WM_SIZE時の範囲を更新範囲に追加したんお

660:デフォルトの名無しさん
07/05/03 14:09:06
レンダリング?

661:デフォルトの名無しさん
07/05/03 14:14:02
>>659
おk。

>>660
>>648

662:デフォルトの名無しさん
07/05/03 14:18:35
レスどうも

>>639
入力中の英和混在入力のモード切替に対応したいので
WM_SETFOCUSじゃ無理なんです。

663:デフォルトの名無しさん
07/05/03 14:44:44
>>637
>フォアグラウンドのIMEの状態を調べてIME_CMODE_ROMANがない場合
>VK_KANAを有効にしたいのですが。
>チェックするタイミングはキーフックとタイマーのどちらが良いでしょうか?

>>662
>入力中の英和混在入力のモード切替に対応したいので
>WM_SETFOCUSじゃ無理なんです。

エスパーじゃないんで要点を詳しく。
現状の具体的な問題点と、その解法にIMEをもってきた理由を特に。
(難解が平易に変わるかも)


664:デフォルトの名無しさん
07/05/03 15:00:16
>>661
どこがレンダリング?w

665:デフォルトの名無しさん
07/05/03 15:20:42
つ[辞書]

666:デフォルトの名無しさん
07/05/03 15:29:50
>>664
Render ってのが見えないのだろうか。

667:デフォルトの名無しさん
07/05/03 15:31:24
【他動-14】 《コ》
〜をレンダリングする、
〔画像{がぞう}などのデータを〕実際{じっさい}に描画{びょうが}する、
〔三次元{さんじげん}のオブジェクトを〕二次元{にじげん}の画像{がぞう}にする
◆データを解釈・計算して視覚的に表示すること。

・ Different browsers render HTML differently. ブラウザによって HTML のレンダリングは異なります。

668:デフォルトの名無しさん
07/05/03 15:37:01
話の流れを読まずに、文字の綴りだけをあげつらった揚げ足取りなんだから
そんなに反応することないのに・・
ちょっと前にも、こういう質問とは本来関係ないことで脱線しなかったか?

669:デフォルトの名無しさん
07/05/03 15:38:32
おや、本当だ
Render()見落としてたわ・・・・


670:デフォルトの名無しさん
07/05/03 15:40:20
>>667
広義には与えられたデータを元に視覚表示すること全てレンダリングだけど
広く一般にレンダリングと言ったら3Dモデルのレンダリングのことを指すのが言葉の難しいところだ

671:デフォルトの名無しさん
07/05/03 15:44:47
HTML レンダリングもよく使うと思うけど。

672:デフォルトの名無しさん
07/05/03 15:45:57
>>663

簡単に言えば、
「窓使いの憂鬱」と言うソフトにカナロックON/OFFで
キーマップを切り替える機能があるんですけど。
IMEの英和混在入力を使うとずれるんですねこれが。
原因は、IME_CMODE_ROMANとVK_KANAがシンクロしないからなんで、
グローバルフックかけて外部から梃入れしようかなと。


673:デフォルトの名無しさん
07/05/03 15:53:07
>>671
表示全てをレンダリングと言うよりは使うとは思うけど
それも結局ソッチの道の人がほとんどだしさ

まぁ、どうでもいいことだと思うけどw

674:デフォルトの名無しさん
07/05/03 16:30:38
アタシのことでけんかしないで!

675:649
07/05/03 16:31:19
>>653-654
サンクス
これからやってみます

676:デフォルトの名無しさん
07/05/03 16:37:13
>>672
開発は終わってるんだな・・・
これソース公開してないかい?

677:デフォルトの名無しさん
07/05/03 16:42:37
>>672

URLリンク(sourceforge.net)
ソースはここみたい。

ある程度処理を読んで解析した上で、対処した方がいいかもね。

678:デフォルトの名無しさん
07/05/03 17:00:08
hook.cpp
n.m_isKanaLockToggled = !!(GetKeyState(VK_KANA) & 1);

これを

HWND hWnd = GetForeGroundWindow();
ImmGetContext(hWnd);
ImmGetConversionStatus(hImc, &dwc, &dws)
n.m_isKanaLockToggled = (dwc & IME_CMODE_JAPANESE) && (dwc ^ IME_CMODE_ROMAN);
ImmReleaseContext(hWnd, hImc);

VS2003でないから試せないけど。

679:デフォルトの名無しさん
07/05/03 17:07:34
おーいXOR…

680:デフォルトの名無しさん
07/05/03 17:50:06
n.m_isKanaLockToggled = (dwc & IME_CMODE_JAPANESE) && (dwc & ~IME_CMODE_ROMAN);

681:デフォルトの名無しさん
07/05/03 17:54:23
&~でも^でもどっちでもよくね?
ダメな理由があるなら別だけど

682:デフォルトの名無しさん
07/05/03 18:27:44
っ どっちもだめ

683:デフォルトの名無しさん
07/05/03 18:54:37
>>681
XORとNOT&ANDが同じ動作とでも思ってるの?

684:デフォルトの名無しさん
07/05/03 18:55:51
CPUの中身は全部XORの組み合わせ

685:デフォルトの名無しさん
07/05/03 19:16:48
>>683
もちろんです

686:デフォルトの名無しさん
07/05/03 19:19:09
00001000 ^ 11111111 = 11110111 TRUE
00001000 ^ 11110111 = 11111111 TRUE

687:デフォルトの名無しさん
07/05/03 19:20:14
>>685
これは すごい ゆとり

688:デフォルトの名無しさん
07/05/03 19:23:27
10以外の位取りはゆとりで教育課程から消えたけど
ビット演算も学校で教えてたっけ?

689:デフォルトの名無しさん
07/05/03 19:29:01
ビット演算まではなかったと思う。

690:デフォルトの名無しさん
07/05/03 19:29:24
学校で習ったかどうかなんて関係ない。

691:デフォルトの名無しさん
07/05/03 19:32:11
工業乙

692:デフォルトの名無しさん
07/05/03 19:34:31
どっちかのbitが立ってることを確認するために

if(hoge & 0x000000C0)

みたいな書き方出来ると思うのですが

両方のbitが立ってることを確認したければ

if(hoge & 0x000000C0 == 0x000000C0)

って書くしか方法ないですか?


693:デフォルトの名無しさん
07/05/03 19:42:07
hoge & 0x000000C0 & 0x000000C0がある

694:デフォルトの名無しさん
07/05/03 19:43:01
if((hoge & 0x000000C0) & 0x000000C0)

695:デフォルトの名無しさん
07/05/03 19:43:38
全部不正解

696:デフォルトの名無しさん
07/05/03 19:44:36
00001000 ^ 11111111 = 11110111 TRUE
00001000 ^ 11110111 = 11111111 TRUE

00001000 &^ 11111111 =
00001000 &^ 11110111 =
にするとどうなるの?

697:デフォルトの名無しさん
07/05/03 19:46:55
>>690
ゆとり教育なんか学力の低下に関係ないと言いたいわけですね。

698:デフォルトの名無しさん
07/05/03 19:50:50
マスクすれ

699:デフォルトの名無しさん
07/05/03 19:52:41
プログラムの勉強の前に情報技術基礎から勉強する事を勧めたいね

700:デフォルトの名無しさん
07/05/03 19:54:48
>>691

高専の専攻卒で悪かったな

701:デフォルトの名無しさん
07/05/03 19:54:54
こうするんだよ

if(!((hoge & 0x000000C0) ^ 0x000000C0))


702:デフォルトの名無しさん
07/05/03 19:58:01
if((hoge & 0x00000080) && (hoge & 0x00000040))

703:デフォルトの名無しさん
07/05/03 19:59:30
>>680
これだろ

n.m_isKanaLockToggled = (dwc & IME_CMODE_JAPANESE) && ~(dwc & IME_CMODE_ROMAN);

704:デフォルトの名無しさん
07/05/03 20:00:44
何で皆向きになってるんだwwwwwwwwwww血だなwwwwwwwwwそんな俺もwwwwwwwwwwww

705:デフォルトの名無しさん
07/05/03 20:01:03


~→!

706:デフォルトの名無しさん
07/05/03 20:01:52
>>678-704
バカが!!!

if(1)

これだろ

707:デフォルトの名無しさん
07/05/03 20:02:39
>>685
久々に開いた口が塞がらないぜ

708:デフォルトの名無しさん
07/05/03 20:02:54
定数が複数あるのが美しくないな。

if(~(hoge | ~0x000000C0))

こうだろ。

709:デフォルトの名無しさん
07/05/03 20:03:30
【高速化】ビット演算 0x02
スレリンク(tech板)

710:デフォルトの名無しさん
07/05/03 20:04:35
>>708
お前の美しいという言葉に全米が泣いた
だがそのコードはとても美しいとは思わない

これが美しいコードの見本だ

if(0)


711:デフォルトの名無しさん
07/05/03 20:04:47
ここは Win32API スレだっつーの!

712:デフォルトの名無しさん
07/05/03 20:07:41
そして皆我にかえるわけだが

チェックボタンやラジオボタンでBS_ICONなどでアイコンにする事はできるんですが、
そのアイコンにマウスをあわせたら文字が浮き出るようにするやり方がわからないです。

713:デフォルトの名無しさん
07/05/03 20:09:12
>>708
間違ってない?

714:デフォルトの名無しさん
07/05/03 20:10:58
>>712
マウスメッセージ拾って、コモンコントロールのToolTipでガンバレ

715:デフォルトの名無しさん
07/05/03 20:11:03
>>708
おまえ勘違いしてるだろ

716:デフォルトの名無しさん
07/05/03 20:11:53
>>714
あー、やっぱマウスメッセージ拾うしかないのか
サンクス

717:デフォルトの名無しさん
07/05/03 20:13:44
>>693 >>694 >>708
久々に馬鹿三匹発見

718:デフォルトの名無しさん
07/05/03 20:14:03
連休的優しさ乙。


719:デフォルトの名無しさん
07/05/03 20:14:52
【高速化】ビット演算 0x02
スレリンク(tech板)


720:708
07/05/03 20:24:11
ちょっと間違えただけじゃないか。
指摘ついでに訂正しておいてくれよw

if(!~(hoge | ~0x000000C0))

721:デフォルトの名無しさん
07/05/03 20:49:47
ウィンドウを作らずに音量とかハードウェアの安全な取出しがあるところにインジケータを追加出来ますか?

722:デフォルトの名無しさん
07/05/03 20:55:27
非表示のウィンドウを作れ

723:デフォルトの名無しさん
07/05/03 20:59:36
いい加減あからさまな釣りに反応するのやめろよ

724:デフォルトの名無しさん
07/05/03 21:02:56
考え方を変えれば良いんだ。
表示されるまではウインドウじゃない、ただのハンドルなんだと。

725:デフォルトの名無しさん
07/05/03 21:05:26
僕ハッカー

726:デフォルトの名無しさん
07/05/03 21:05:45
僕バッカー

727:デフォルトの名無しさん
07/05/03 21:08:05
>>721
そのようなことはできません

728:デフォルトの名無しさん
07/05/03 21:08:19
WM_CREATEを華麗にスルーだ!

729:デフォルトの名無しさん
07/05/03 21:23:20
バカバッカー

730:デフォルトの名無しさん
07/05/03 21:42:08
残り3日

731:デフォルトの名無しさん
07/05/03 21:58:42
俺チンコ

732:デフォルトの名無しさん
07/05/03 22:29:21
if(!(~hoge & 0x000000C0))

733:デフォルトの名無しさん
07/05/03 22:48:15
なんでZARDが入ってないんだよ

734:デフォルトの名無しさん
07/05/03 23:41:09
WANDSじゃダメか?

735:デフォルトの名無しさん
07/05/04 12:40:33
>>721
最近3日に1回はその質問見てるような気がする

736:デフォルトの名無しさん
07/05/04 13:22:41
間欠泉のようなもんだから(3回目)

737:デフォルトの名無しさん
07/05/04 14:07:54
DLLから窓へデータを送るにはどうすればいいの?

738:デフォルトの名無しさん
07/05/04 14:09:48
WM_COPYDATA

739:デフォルトの名無しさん
07/05/04 14:30:08
>>737
パケでも取得するのかい?

740:デフォルトの名無しさん
07/05/04 14:35:20
WORDとハンドルがひとつなんですけど

741:デフォルトの名無しさん
07/05/04 14:37:05
自分でメモり割り当ててlpDataにポインタ入れるんだよ

742:デフォルトの名無しさん
07/05/04 14:39:26
構造体使えばいいだろ

743:デフォルトの名無しさん
07/05/04 14:42:53
>>740
それくらいだったらSendまたはPostMessageで直接独自のメッセージを送りつければいいと思う

744:デフォルトの名無しさん
07/05/04 15:42:37
MMF

745:デフォルトの名無しさん
07/05/04 17:51:38
映画見に行った?海賊のやつ。
ああコナンね。
( ゚д゚)ポカーン

746:デフォルトの名無しさん
07/05/04 17:57:23
(´・ω・`)知らんがな

747:デフォルトの名無しさん
07/05/04 18:02:51
コナン・ザ・グレードよりコマンドーだろ

748:デフォルトの名無しさん
07/05/04 18:05:46
た゛っちゅーの

749:デフォルトの名無しさん
07/05/05 00:46:15
SetWindowsHookExのコールバックをクラスのメンバ関数にする場合
どう書けばいいの?

(HOOKPROC)CMainDlg::KeyboardProcとすると

error C2440: '型キャスト' : 'overloaded-function' から 'HOOKPROC' に変換できません。
と怒られます。

750:デフォルトの名無しさん
07/05/05 00:49:23
staticなメンバ関数から呼び出す

751:デフォルトの名無しさん
07/05/05 00:54:29
行方不明じゃん

752:デフォルトの名無しさん
07/05/05 01:00:55
え?

753:デフォルトの名無しさん
07/05/05 01:03:29
そもそも静的にしないと住所不定

754:デフォルトの名無しさん
07/05/05 01:50:25
この処理は既に実行されています。

みたいな感じの時はHRESULTはどれを使えばいいんでしょうか?

755:デフォルトの名無しさん
07/05/05 02:01:47
E_KONOSHORIHA(略

756:デフォルトの名無しさん
07/05/05 02:06:27
E_ABORT

757:デフォルトの名無しさん
07/05/05 02:11:27
HRESULT hr = AtlHresultFromWin32(ERROR_ALREADY_INITIALIZED);

758:デフォルトの名無しさん
07/05/05 02:14:16
それがエラーではないというのならS_FALSEという手もある。
勿論その場合S_KONOSHORIHA(略も可。

759:デフォルトの名無しさん
07/05/05 02:39:44
AtlHresultFromWin32(ERROR_BUSY); でいいんじゃ。



760:デフォルトの名無しさん
07/05/05 08:34:39
その文章だと二つの意味に取れるな。
1.現在処理中なので、受け付けることができない。
2.この呼び出しを二回以上する必要は無い。

761:デフォルトの名無しさん
07/05/05 08:41:09
この呼び出しを二回以上する必要は無い。
なんですけど。FACILITY_ITFで自分で定義できるみたいですね。
どうもありがとう。

762:デフォルトの名無しさん
07/05/05 09:09:06
FORMAT_MESSAGE_FROM_SYSTEMは最大で何文字まで返ってくる可能性があるの?

763:デフォルトの名無しさん
07/05/05 09:19:32


764:デフォルトの名無しさん
07/05/05 09:27:04
64KB。Unicodeで32K文字ってとこか。

765:デフォルトの名無しさん
07/05/05 09:29:25
実メモリが許す限りじゃね?
各エラーコードに対応するメッセージが全部わかれば最大どれくらいか解ると思うけど
つか、FORMAT_MESSAGE_FROM_SYSTEMはFORMAT_MESSAGE_ALLOCATE_BUFFERと一緒に使うもんだと思ってたんだけどw

766:デフォルトの名無しさん
07/05/05 09:31:27
>>764
詳しく

余談だけど、Unicode=2バイトじゃ無い

767:デフォルトの名無しさん
07/05/05 09:32:33
へぇ〜

768:デフォルトの名無しさん
07/05/05 10:09:56
>>766
内部的に使ってるUNICODE_STRING構造体の制限。
あとWin32のW系APIで文字と言ったら暗黙にUTF-16符号単位のことを指してると思っていい。

769:デフォルトの名無しさん
07/05/05 10:52:47
FormatMessageへ渡すバッファってLPWSTRになってるけど
実際渡すのはLPWSTRへのポインタでは?

770:デフォルトの名無しさん
07/05/05 10:55:00
>>769
それは、FORMAT_MESSAGE_ALLOCATE_BUFFERの時ね

771:デフォルトの名無しさん
07/05/05 10:55:57
この事実に気付いた者は抹殺さr

772:デフォルトの名無しさん
07/05/05 11:31:01
自動的にメモリ確保してくれるんだろ
後LocalFreeしないとダメなんだよな使い終わったら。

773:デフォルトの名無しさん
07/05/05 11:35:05
あらかじめ確保したものを渡す関数と
勝手に確保して返してくれる関数の違いは
関数の仕様見て確認するしかないんですよね
ネーミングのルールとかありますか?

774:デフォルトの名無しさん
07/05/05 12:07:26
呼び出し側でバッファを用意して渡す場合、
バッファサイズも渡さないとイケナイから、わかる。

775:デフォルトの名無しさん
07/05/05 16:49:46
CopyMemoryの成否の判断ってどうするんでしょう

776:デフォルトの名無しさん
07/05/05 16:51:35
CopyMemory が失敗する状況って、メモリが壊れてる時とかか?

777:デフォルトの名無しさん
07/05/05 16:54:24
CopyMemoryってmemcpyの#defineじゃなかったっけか。

778:デフォルトの名無しさん
07/05/05 16:59:06
しかもmemcpyはコンパイラによってはインラインに展開される。
そんなものが失敗するような状況じゃエラーチェックの判定だって正しく行われるかどうか
分からんぞ。つまり考えるだけ無駄

779:デフォルトの名無しさん
07/05/05 17:20:52
memcpyはこういうときにエラーを返すということが定められていなかったと思う。

エラーになりそうな状況を考えると、思い付くのはヌルポインタなどメモリにアクセスできないとき。
それならWindowsが例外を投げてくるだろう。SEHで処理しろ。

780:デフォルトの名無しさん
07/05/05 17:45:48
IMAGE_IMPORT_DESCRIPTOR についての質問です。

Advanced Windows のAPIフックに関するソースコードを読むと、
モジュールのベースアドレス(modBaseAddr)と、
モジュールのハンドル(hModule)は "常に同じ" として
扱われているみたいですが、
これは保証されている事なのですか?


781:デフォルトの名無しさん
07/05/05 17:48:31
パケット取得でもするのかい?

782:デフォルトの名無しさん
07/05/05 17:55:03
特に用途はないです。
ただの興味本位ということで・・・

783:デフォルトの名無しさん
07/05/05 18:20:23
コンボボックスでドロップダウンリストが1行しか表示されません。
複数行を表示するにはどこを設定すればよいのでしょうか?

OS:WinXP
環境:Visual Studio 2005
言語:C++

784:デフォルトの名無しさん
07/05/05 18:21:32
下に広げる

785:デフォルトの名無しさん
07/05/05 18:26:46
コントロールのデザインのとこで、コンボボックスのドロップダウンボタンをクリックすると
コントロールの大きさを変えるのとドロップダウンリストの大きさを変えるのが切り替わる

786:783
07/05/05 18:28:22
>>784
エディット画面で選択項目表示部分を選択すると
縦方向に伸ばすことができなかったのですが
矢印ボタンのところをクリックすると縦方向に伸ばせました。
ありがとうございました。

787:デフォルトの名無しさん
07/05/05 18:42:21
ファイルマップオブジェクトにthisポインタの値を書き込むにはどうすれば良いですか?

788:デフォルトの名無しさん
07/05/05 19:06:57
>>787
thisポインタの値を書き込めばいいと思います

789:デフォルトの名無しさん
07/05/05 19:43:57
thisポインタの値とは?

790:デフォルトの名無しさん
07/05/05 19:44:11
thisポインタの値のことだろ

791:デフォルトの名無しさん
07/05/05 21:18:42
メニューバーのオーナードローをするにはどうすれば良いでしょうか?
Adobe Reader(8.0)のメニューバーのような感じにしたいです。

792:デフォルトの名無しさん
07/05/05 22:08:50
メニューバー?
Reader8のメニューは普通だと思うが?
ツールバーか?

793:デフォルトの名無しさん
07/05/05 22:17:27
どうしてnCodeがマイナスだとすぐにCallNextHookExを返すの?

794:デフォルトの名無しさん
07/05/05 22:44:28
そういう決まりだから

795:791
07/05/06 00:18:21
>>792
URLリンク(kjm.kir.jp)
赤線で囲ってあるところなんですけど、なんて言うんでしょうか?

796:デフォルトの名無しさん
07/05/06 00:23:10
メニューバー

797:デフォルトの名無しさん
07/05/06 00:24:11
メニューにアイコンをつけたいとかそういう話?

798:デフォルトの名無しさん
07/05/06 01:04:42
質問です、以下のようなプログラムを現在制作しています。

コンソールアプリケーション
テキストをドラッグ&ドロップすることで、一定の処理をテキストファイルに対して行う。
「一定の処理」は、このアプリケーション用に書かれたDLLのによって変化する。

それで、DLLの検索&ロードをFindFirstFileとFindNextFile、LoadLibraryを用いて行っています。
そのプログラムなのですが、IDE(VC7)からでは設計通りに動作するのですが、それ以外では動作せず…。
どうやらFindFirstFileなどで、DLLが検索に引っ掛からないようなのです。

(おそらくはカレントディレクトリの問題なのでしょうが)、何故このようなことが起こるのでしょうか?
また、対策を教えてください。よろしくおねがいします。

799:791
07/05/06 01:11:24
アイコンは別にいらないのですが、Adobe Readerみたいにメニューバーの通常状態の色や、選択状態の色を変えたいのです。
あと、右上端にあるバツ印もどうやっているでしょうか?

800:デフォルトの名無しさん
07/05/06 01:11:40
GetModuleFileName

801:デフォルトの名無しさん
07/05/06 01:12:45
>>798
>(おそらくはカレントディレクトリの問題なのでしょうが)
そう思うなら、まずはGetCurrentDirectory()で調べるべきでは?

802:デフォルトの名無しさん
07/05/06 01:56:35
DLLを実行ファイルに含めて、一つの実行ファイルにすることって可能でしょうか?

803:デフォルトの名無しさん
07/05/06 02:05:33
>>802
無理やりリソースとして埋め込んで、実行時に復元すれば?

804:デフォルトの名無しさん
07/05/06 02:08:48
hIconでアイコンを指定しました。
けど
URLリンク(kjm.kir.jp)
みたいにタスクバー上でしかアイコンが変わってません。
どうしたらプログラム上でもアイコンを変えれますか?

805:デフォルトの名無しさん
07/05/06 02:12:05
hIconSm を放置してるとか?

806:798
07/05/06 02:17:35
>801
ありがとうございます、さっそく調べてみました。
すると、カレントディレクトリがC:\Document and Settings\(ユーザー名)となっているようです。
これは何故なのでしょうか、理由をどなたか知っていれば教えていただければと。

807:デフォルトの名無しさん
07/05/06 02:19:44
>>805
素早いレスありがとうございます。
hIconSmの存在も調べました。
でもwindows95以外はWNDCLASSEXを使えないらしく、だからhIconSmも使えないそうなんです。
実際hIconSmも指定してビルドするとWNDCLASSにはhIconSmは存在しないってエラーがでました。


808:デフォルトの名無しさん
07/05/06 02:19:51
理由を考えるよりカレントディレクトリに依存しないようにプログラムを変えろ

809:デフォルトの名無しさん
07/05/06 02:23:44
>>807
Windows 95 以降全部で使えるぞ。

810:デフォルトの名無しさん
07/05/06 02:24:58
むしろどこに Win95 以外使えないって書いてるのか教えてくれ

811:デフォルトの名無しさん
07/05/06 02:28:52
Windows 95のころのSDKじゃね?
当然「Windows 95以外」が意味してるのはNT 3.5とかWindows 3.1とか

812:デフォルトの名無しさん
07/05/06 02:31:49
>>809-811
あれ、つかえるんですか。じゃあそれでやってみます。

813:デフォルトの名無しさん
07/05/06 02:32:14
>>811
VC++ 5.0 あたりか。

814:デフォルトの名無しさん
07/05/06 02:42:04
hIconSmで指定しても駄目でした。
ちなみにVC++ 6.0をつかってます

815:デフォルトの名無しさん
07/05/06 02:45:57
あ、16 ビット版のアイコンをエディットしてないとかはどうか?
確か VC++ 6.0 あたりは、アイコンを新たに作成したときは
32 ビット版と 16 ビット版が両方作られてたはず。
どっかでエディット対象を選択できるんで、
それで 16 ビット版の方もエディットすればいいはず。

816:デフォルトの名無しさん
07/05/06 02:47:11
ちゃんと WNDCLASSEX 使ってるか? WNDCLASS じゃないぞ

817:デフォルトの名無しさん
07/05/06 02:53:25
>>815
一つしか作られてないと思うのですが、どこに作成されるのでしょうか?

>>816
WNDCLASSEXに変えても駄目でした。

818:デフォルトの名無しさん
07/05/06 02:54:32
>>817
1つのファイルに2つのアイコンが入ってるはず。

819:デフォルトの名無しさん
07/05/06 02:55:45
ビットじゃないやw ドットだ。

820:デフォルトの名無しさん
07/05/06 02:58:26
>>818
一つしかアイコンはありませんでした・・・
もちろん32のほうだけしかありません・・・

821:デフォルトの名無しさん
07/05/06 02:59:02
>>820
どういう風に確認した?

822:デフォルトの名無しさん
07/05/06 03:01:58
>>821
アイコンの保存場所がワークスペースがあるフォルダなのでそこを確認しました

823:デフォルトの名無しさん
07/05/06 03:04:56
>>822
アイコンの中身は見たのか?

824:デフォルトの名無しさん
07/05/06 03:07:30
WNDCLASSEXでhIconSmを指定してる箇所のソースを
ここに張り付けた方が解決が早い予感

825:デフォルトの名無しさん
07/05/06 03:11:51
>>823
アイコンの中身は見ました。
プロパティも確認しました。

826:デフォルトの名無しさん
07/05/06 03:13:43
メインのとこだけ貼り付けます
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) {
MSG msg; //メッセージ情報格納用構造体
WNDCLASSEX wc; //ウィンドウクラス
HWND hWnd; //ウィンドウハンドル
//*****ウィンドウクラスの設定*****//
wc.cbSize = sizeof(WNDCLASSEX); //構造体サイズ
wc.hInstance = hInstance; //インスタンスハンドル
wc.lpszClassName = szClassName; //ウィンドウクラス名
wc.lpfnWndProc = WindowProc; //ウィンドウプロシージャ名
wc.style = CS_HREDRAW|CS_VREDRAW; //ウィンドウスタイル
wc.hIcon = LoadIcon(hInstance,"IDI_ICON1"); //アイコンハンドル
wc.hIconSm = LoadIcon(hInstance,"IDI_ICON1");
wc.hCursor = LoadCursor(NULL,IDC_ARROW); //カーソルハンドル
wc.lpszMenuName = "saisei"; //メニュー
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //ウィンドウの背景色セット
//*****ウィンドウクラス登録*****//
if(!RegisterClassEx(&wc)) return FALSE; //登録失敗
//*****ウィンドウの作成*****//
hWnd = CreateWindow(szClassName,"再生プログラムだべ",WS_OVERLAPPEDWINDOW,440/*CW_USEDEFAULT*/,650/*CW_USEDEFAULT*/,400,100,NULL,NULL,hInstance,NULL);
/*hWnd = CreateWindow(ウィンドウクラス名,ウィンドウタイトル,ウィンドウスタイル,ウィンドウの水平座標位置,ウィンドウの垂直座標位置,ウィンドウの幅,ウィンドウの高さ,親ウィンドウのハンドル,メニューのハンドル,インスタンスハンドル)*/
//*****ウィンドウの表示*****//
ShowWindow(hWnd,nCmdShow); //ウィンドウの表示状態設定
UpdateWindow(hWnd); //ウィンドウの表示領域更新
//**********メッセージループ***************
while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);
}
/*while(メッセージの取得){メッセージの変換,メッセージをプロシージャへ送信}*/
return msg.wParam;
}

827:デフォルトの名無しさん
07/05/06 03:14:16
>>806
IDEから実行したらおそらくカレントディレクトリはプロジェクトファイルのあるディレクトリになってるはず。
ファイルをドラッグ&ドロップして起動した場合は、ファイルのあるところがカレントディレクトリになってるはず。

理由?知らね。そのほうが都合がいいからだろ。

DLLをEXEと同じディレクトリに置くことにしてるのなら>>800とか。

828:デフォルトの名無しさん
07/05/06 03:14:36
アイコンファイルをうpってみたら?

829:デフォルトの名無しさん
07/05/06 03:20:49
アイコンをアップしました
URLリンク(vipup.sakura.ne.jp)

830:デフォルトの名無しさん
07/05/06 03:31:28
確かに 32 ドットのしか入ってないね・・・。
>>826 も別に変には思えないし。
じゃ、16 ドットのも作ってみたらどうかな。

831:デフォルトの名無しさん
07/05/06 03:40:40
>>826
"IDI_ICON1"

MAKEINTRESOURCE(IDI_ICON1)
に置換すれ
ウチの環境では、それでうまくいった

832:デフォルトの名無しさん
07/05/06 03:54:18
MSDNより
>LoadIcon 関数がロードできるのは、GetSystemMetrics 関数の SM_CXCURSOR と SM_CYCURSOR
> の各フラグに相当するサイズのアイコンだけです。それ以外のサイズのアイコンをロードするには、
>LoadImage 関数を使ってください。

wc.hIconSm = LoadImage(hInstance,"IDI_ICON1", IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); 
でどお?


>SM_CXCURSOR と SM_CYCURSOR
これ誤植っぽい、SM_CXICON が正しい。

833:デフォルトの名無しさん
07/05/06 03:56:50
32 ドットのアイコンを hIconSm にセットしたら、
自動的に縮小された(もちろん画像は粗い)なったはずなんだがなあ・・・。

834:デフォルトの名無しさん
07/05/06 07:51:11
>>833
リソースの作り方によるよ

835:デフォルトの名無しさん
07/05/06 11:45:27
WindowsMediaInfomationをVCで使ってPCの情報を抜きたいです。
VBのサンプルを見つけたのですが、VC6.0への置き換え方法がよくわかりません。
URLリンク(www.wmifun.net)
VCではどうやってCOM呼び出しを実装すればよいのでしょうか?
APIの質問ではなくて、VCの質問になるかもしれませんが、ご教授お願い致します。

836:デフォルトの名無しさん
07/05/06 11:47:11
WTL

837:デフォルトの名無しさん
07/05/06 11:51:42
URLリンク(zatsugaku.info)


838:デフォルトの名無しさん
07/05/06 11:52:51
驚異的に改行されてねえ
とか思ったけどIEだとOKなのか

839:デフォルトの名無しさん
07/05/06 11:59:46
>>831
うまくいけました。
ありがとうございます!

>>832
なんか
error C2440: '=' : 'void *' から 'struct HICON__ *' に変換することはできません。
っていわれました。


みなさま数々のご教授ありがとうございました。
またなにかエラーのときはよろしくおねがいします。

840:デフォルトの名無しさん
07/05/06 12:33:32
Wininetに関して質問なんですが、InternetOpenはアプリの起動時に実行すべきでしょうか?
それとも通信の必要がある場合にその都度の方がいいですかね?

841:デフォルトの名無しさん
07/05/06 13:22:32
ダイアルアップの人もいるし、、、ノートで出先とか


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4981日前に更新/228 KB
担当:undef