- 1 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:39:56 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- 684 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 23:50:05 ]
- ウィンドウにWS_EX_LAYEREDを設定し、32Bitビットマップを読み込み下の様にUpdateLayeredWindowを実行しましたが、
ウィンドウが消えてしまい、うまくビットマップを適用させることができません。 どこがおかしいか、何方か教えて頂けないでしょうか。 ReadFile(hFile , &bmpFileHeader , sizeof (BITMAPFILEHEADER) , &dwBytes , NULL); bmpInfo = (BITMAPINFO *) malloc (bmpFileHeader.bfOffBits - dwBytes); ReadFile(hFile , bmpInfo , bmpFileHeader.bfOffBits - dwBytes , &dwBytes , NULL); bPixelBits = (BYTE *) malloc (bmpFileHeader.bfSize - bmpFileHeader.bfOffBits); hdc = GetDC(hWnd); hBitmap = CreateDIBitmap(hdc , &bmpInfo->bmiHeader ,CBM_INIT , bPixelBits , bmpInfo , DIB_RGB_COLORS); hBuffer = CreateCompatibleDC(hdc); SelectObject(hBuffer , hBitmap); GetObject(hBitmap , sizeof (BITMAP) , &bitmap); wndPos.x = 100; wndPos.y = 100; surPos.x = surPos.y = 0; wndSize.cx = 300; wndSize.cy = 300; bf.BlendOp = AC_SRC_OVER; bf.BlendFlags = 0; bf.AlphaFormat = AC_SRC_ALPHA; bf.SourceConstantAlpha = 255; UpdateLayeredWindow( hWnd, GetDC( 0 ), &wndPos,&wndSize, hBuffer, &surPos, 0, &bf, ULW_ALPHA); 長文ですみません
- 685 名前:デフォルトの名無しさん [2007/11/29(木) 00:01:28 ]
- freeしたポインタをfreeしたらどうなりますか?多分よくないですよね?
freeされたかどうかを調べる関数とかってないですか?
- 686 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:10:35 ]
- >>683
HWNDはウィンドウ 位置を動かしたりサイズを変えたり、タイトルバーを設定したりできる HDCは画家 ペンや絵の具を渡せば、三角形とか四角形とか円とかを描いてくれる DIBはメモリ内の.bmpファイル
- 687 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:11:51 ]
- >>685
よくないです 調べる方法はありません 自分で気をつけましょう
- 688 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:18:25 ]
- >>684
ビットマップのイメージ本体を読み込んでないように見える bPixelBits は malloc しただけでそのままだし hBitmap も Create しただけで何も描き込んでないし
- 689 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:19:09 ]
- >>687
デバッグビルドならチェック入ると思うが
- 690 名前:デフォルトの名無しさん [2007/11/29(木) 00:30:16 ]
- >>685
当たり前だけど、対象のポインタ変数にメモリが割り当てられてるかどうかは ポインタがNULL番地をさして無ければいいわけだから 俺はいつも if(lpPoint != NULL) free(lpPoint) ってやってるが、もしかしたら正しくはないのかも知れん >>686 ついでにCreateDIBSection関数が何者なのか、解説ヨロ 何度説明されても分からんけん
- 691 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:32:47 ]
- >>690
if(lpPoint != NULL) free(lpPoint) これは無駄だろ if(lpPoint != NULL) delete[] lpPoint の場合なら意味あるけど
- 692 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:38:22 ]
- >>690
CreateDIBSection は指定したサイズのビットマップをメモリ内に作る。 GDI 関数で扱えるように HBITMAP ハンドルが返されるし、 その RGB 値を直接触れるように、ビットマップデータへのポインタも返される。
- 693 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:38:56 ]
- >>691
どっちも無駄 NULL を free とか delete とか delete[] に食わせるのは合法で、単に無視される
- 694 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:50:08 ]
- >>693
deleteも無駄だったのか・・・知らなかった
- 695 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:54:26 ]
- deleteしたあとNULL入れとくのが正解
- 696 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 01:30:03 ]
- if(lpPoint != NULL) {free(lpPoint); lpPoint = NULL;}
こうするのが正解
- 697 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 01:40:16 ]
- >>696
不正解
- 698 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 01:49:15 ]
- NULLだったら無視されるんだから
free(lpPoint); lpPoint = NULL; だけでいいじゃん…
- 699 名前:デフォルトの名無しさん [2007/11/29(木) 02:02:02 ]
- K&Rにfreeで解放されたメモリ領域にfreeをかけるのは動作が規定されてないからやめとけって書いてあった希ガスよ
正しくは>>696のようにすべきじゃね、と思う >>692 そういう説明は何百回も読んでるんだけど、さっぱりわかんねーよ >指定したサイズのビットマップ ← これはデバイス独立ビットマップなのか、デバイス依存ビットマップなのか・・・ GDI関数で扱えるDDB(デバイス依存とかいう香具師)は、ビットマップのピクセルビットへはアクセスできない HBITMAP型は通常デバイス依存ビットマップを表現するのに使われるはずだよ なのに、ピクセルビットへのポインタもちゃんと返してくる 現にGetObjectで調べてみたら、pBitsにピクセルビットへのポインタが格納されてる 通常HBITMAP型のDDBを引数に、GetObjectやってもpBitsはNULLだよね
- 700 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 02:30:38 ]
- >>699
free(lpPoint); lpPoint = NULL; free(lpPoint); と、 free(lpPoint); free(lpPoint); は違う。 おまいが言っているのは後者。
- 701 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 02:48:31 ]
- >>699
DDBのビットデータに直接アクセスできるわけない 大抵VRAM上にあるだろうし、DirectXじゃないから直接アクセスできてもあまり意味が無い >HBITMAP型は通常デバイス依存ビットマップを表現するのに使われるはずだよ お前の「通常」の基準がよく分からん。DDBで使うことの方が多いと思うが。 DIBもDDBもHBITMAPなのは、ある程度両者を意識しなくて済むようにそういう設計にしてるのか DIBセクションが標準APIとして加わったのがwin95以降だからなのか他に理由があるのかは知らん
- 702 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 03:31:48 ]
- >>688
レス、有難うございます >>ビットマップのイメージ本体を読み込んでいない すみませんm(__)m 初歩的なミスに気付いていませんでした ReadFileをもう一つ追加して見ます
- 703 名前:デフォルトの名無しさん [2007/11/29(木) 06:31:35 ]
- >>701
>HBITMAP型は通常デバイス依存ビットマップを表現するのに使われるはずだよ お前の「通常」の基準がよく分からん。DDBで使うことの方が多いと思うが。 デバイス依存ビットマップ=DDB
- 704 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 08:12:20 ]
- >>697
速度重視なら正解だろ
- 705 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 08:19:13 ]
- >>704
一概には言えない lpPointがNULLの可能性が高い場合はいいが逆だと遅くなる
- 706 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 08:26:40 ]
- >>705
そこまで行くとそもそも論になるからもう止めようぜ
- 707 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 08:27:10 ]
- >>699
DIBセクションは、DIBの形でデータを保持していて、 HBITMAP経由で読み書きするときには、 その都度DDBとの間で変換が行われる。 ってプログラミングWindowsに書いてあった。
- 708 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 10:05:52 ]
- 今時if文判定1個にこだわるプログラミングしてるやつがいることに驚きだわ
- 709 名前:683 mailto:sage [2007/11/29(木) 10:22:06 ]
- >>686
ではなぜBitBltではDIBではなくhDCを渡すのでしょうか。 あと、DIB間での画像拡大コピーってできますか?
- 710 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 10:25:59 ]
- >>709
DIBとDDBの違いわかってる?
- 711 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 12:24:28 ]
- >>710
>>709が解ってないのはDIBとDDBの違いではなく、DCにビットマップを選択させる概念ではないかと
- 712 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 12:26:35 ]
- DIBとDDBの違いがわかればその疑問も解決すると思うのだが
- 713 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 12:43:16 ]
- >>709
>なぜBitBltではDIBではなくhDCを渡すのでしょうか。 BitBltはDIB用じゃないからさ DIBを直接渡すAPIはSetDIBitsToDeviceやStretchDIBitsがあるからそっちを使う >DIB間での画像拡大コピーってできますか? ポインタ駆使して直接ビットデータを操作しちゃえばなんだって出来る
- 714 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 12:49:00 ]
- >>709
GDI+でも使ってろ
- 715 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 14:03:10 ]
- >>700
本来は void correct_free(void **p){ old_free(*p); *p = NULL; } という設計にすべきだったんだよな そうなってはじめて安心して correct_free(&lpPoint); correct_free(&lpPoint); と書ける
- 716 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 14:06:23 ]
- その安心は半分まやかしだ
ポインタ値はあちこちにコピーされうる
- 717 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 14:13:31 ]
- 生成者と参照者を明確に区別して
freeは生成者だけが行うようにする 参照者は使ったらそのまま放置 っていう造りにしたら安定する?
- 718 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 14:14:26 ]
- そんなあなたにshared_ptr
- 719 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 14:36:20 ]
- >>715
correct_free(NULL); どこが安心できるんだ?
- 720 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 15:14:31 ]
- 私が知っていること(onXP)
ビットマップにはDDB,DIB,DIBSectionがある HDCが好むのはHBITMAPつまりDDBとDIBSection DDBはシステム領域に作られ、総量の上限がある DIBSectionはプロセス毎の2GBの中に作られる -->長時間保持する大きなビットマップ向き、メモリマップを使えば巨大なものも可 DIBSectionを選択したままCreateCompatibleBitmapを呼ぶとDIBSectionが作られるらしい DIBSectionはwin16のDIB.DRV,WinGの系統らしい DDBとDIBSection win95の頃は速度大差なし
- 721 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 15:24:23 ]
- >>719
ごめんうっかりしてた void correct_free(void **p){ if(*p) old_free(*p); *p = NULL; } correct_free(&lpPoint); correct_free(&lpPoint);
- 722 名前:デフォルトの名無しさん [2007/11/29(木) 15:29:19 ]
- 頑張ってそんな変なもの使って何かいいことある?
free には失敗しないかもしれないけど、 何時誰が free するかを管理しないコーディングスタイルじゃ 内容が必要なときに既に free されてる恐れがあるじゃん。 ちゃんと誰がいつまで内容を参照したいかが分かってれば、 それの終わりのとこで一回 free すればいいわけだし。
- 723 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 15:57:27 ]
- >>708
アセンブリでMMXやSSEで使うこのご時世に お前が低能だって事は分かった
- 724 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 16:26:48 ]
- >>721
if(*p) { old_free(*p); *p = NULL; } こうだろ >>722 バカは黙ってろ 管理するに決まってるだろ 俺はマクロでNULL代入してるぞ
- 725 名前:724 mailto:sage [2007/11/29(木) 16:28:36 ]
- 訂正
if(p) { old_free(*p); *p = NULL; }
- 726 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 16:30:04 ]
- ダイレクト ボブサップ
- 727 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 16:32:44 ]
- >>722
今時は開放されたメモリの参照すれば例外飛んでくれるから NULL入れる必要もないといえば無い。 それに、確保や開放を頻繁に行うなら、意識して717のいうように作るべきだと思う。 しかし、世の中の大多数の人はそのことを知らないし、やろうともしない。 結局バグの温床になっているが、なんとなく動いてしまっていて気がつかない人も多い。 特にリリース版で動くからいいやとかいうタイプの人もいるんで・・・ あと、自分の経験上、他人が書いたコードで確保と開放が入り乱れてる場合は 開放したところにNULLいれるように書き直すと、バグが良く見つかる。 まあ、こんな小手先の技使わないといけない俺の環境が悪いんだろうな。 最新のコンパイラとか開発環境、動作環境でやり、自分がコードのすべてを把握し 覚えている限りは無用のテクニックかもしれない。 >>723 最適化スレだったらその発言は甘んじて受け入れよう だが、ここはAPIを質問するところだ こんなところで、パイプラインの破壊気にしてもしょうがないだろ?
- 728 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 16:34:44 ]
- >>727
C++ならいいんだけどな
- 729 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 16:37:05 ]
- あああ、free論議は収拾付かなくなるので終了。
終了終了
- 730 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 16:38:34 ]
- >開放したところにNULLいれるように書き直すと、バグが良く見つかる。
嘘だろ
- 731 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 16:47:32 ]
- >>727
APIスレだろうが最適化スレだろうが関係ない 何万回、何百万回も使うならif文一つだろうが気にするべき ジャンプ1回で済ますかpush、call、popを使うかで大違い
- 732 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 16:48:24 ]
- >>728
少なからず理解者がいてくれたようでうれしい >>730 嘘だと思える君の環境がすごくうらやましい 世の中には信じられないことをする人が多いのです。 また、C++に対応してるんだかしてないんだかわからない しょぼい環境も多いのです。
- 733 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 16:52:09 ]
- >>732
開放したところにNULLいれてバグるなら NULLいれなくてもバグるだろ
- 734 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 16:53:41 ]
- >>732
お前が低能だって事は分かった
- 735 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:02:35 ]
- >>727
そんなことで例外発生させてどうすんだよ NULLなら処理を跳ばしてくれれば良いだけなのに
- 736 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:05:47 ]
- >>733
NULLいれなくてもバグってるんだけどそれは発見されない、 NULLいれたらそのバグが発見されやすい、ってことだろ
- 737 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:08:32 ]
- >>736
元々バグってんのか NULL代入関係ないじゃん
- 738 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:10:49 ]
- ここはAPIスレだったよね?
特定の言語の話はスレ違い
- 739 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:11:40 ]
- ガベコレのある言語を使いましょう
でこの話題は終了 ↓はい次
- 740 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:14:53 ]
- 空気読まずに
ポインタのアドレス使ったリスト管理なんかだと freeのあとNULL入れるのは必要になってくるけどな
- 741 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:16:09 ]
- haskellお勧め
- 742 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:21:43 ]
- 質問なのですが、
SetLayeredWindowAttributesを使わずにウインドウのある色の部分だけ透明にすることはできるのでしょうか?
- 743 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:22:31 ]
- SetWindowRgn
- 744 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:31:33 ]
- >>727
> 開放したところにNULLいれるように書き直すと、バグが良く見つかる。 ワロタ
- 745 名前:デフォルトの名無しさん [2007/11/29(木) 18:14:14 ]
- 結局
if( p != NULL ) { free(p); p = NULL; } でFA?
- 746 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 18:15:12 ]
- どうでもいいです
- 747 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:04:14 ]
- >>745
>>696-698
- 748 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:11:42 ]
- ぬるぽ
- 749 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:12:49 ]
- if(_x_){ _x_->Release(); _x_ = NULL; }
- 750 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:21:24 ]
- スマートポインタ使えよ糞共
- 751 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:25:54 ]
- templateって方の種類分容量増えるんだろ
define でいいじゃん
- 752 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:27:28 ]
- >>751
- 753 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:32:49 ]
- >>751
確かに環境によってはtemplate禁止にせざるを得ないこともある。 が、さすがにtemplateの機能をdefineだけじゃ無理だと思う。
- 754 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:44:57 ]
- 本当の初心者質問ですみません。
ウインドウを作成するところで詰まってしまいました。 ビルドは成功するのですが、実行するとウインドウが表示されず、CPUが100%になります。 どこがおかしいでしょうか? 環境 WindowsXPsp2 Visual Studio2005 ソース kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5360.txt
- 755 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:48:39 ]
- ウィンドウクラスの登録が抜けている
- 756 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:55:50 ]
- >>854
PeekMessageなんか使うから100%になるんだ、GetMessage使え。 まずは猫でも分かる〜を読むべし。
- 757 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 19:58:51 ]
- >>752
- 758 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 20:02:59 ]
- >>717
>>727 COMのプログラミングすると 生成者が放置で 参照者が片付ける みたいな感覚に染まってしまう
- 759 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 20:07:30 ]
- >>725
それ意味なくね? 訂正が間違ってる
- 760 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 20:59:53 ]
- InvalidateRectで無効化された領域を取得するにはどうすればよいのでしょうか?
質問の背景としては、スクロールバーを動かしたとき、画面のビットマップをBitBltで 移動させることでスクロールされるようにしています。ところが、転送元の領域が 無効化された状態であった時、その領域が転送後にも再描画されず、不正な状態のままに なってしまっています。そこで、転送前に無効化されていた領域を転送後の座標系で 無効化しなおすことでこの問題を解決したいと思っているのですが。 よろしくお願いします。
- 761 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 21:03:32 ]
- >>751
組み込みスレならともかく、Win32 APIスレで言う話か? メモリ数百MiB-数GiB、CPU数百MHz-数GHzな環境で禁止にする必要などない。
- 762 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 21:07:40 ]
- >>760
GetClipBox PAINTSTRUCT::rcPaint
- 763 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 21:08:29 ]
- GetUpdateRect
だけど。 ふつうはScrollWindowExが良きに計らってくれるんじゃないのかなー。
- 764 名前:760 mailto:sage [2007/11/29(木) 21:16:46 ]
- >>763
おわっと、こんな関数があるとは知りませんでした。 まだ試してないですが、これを使えば万事うまくいきそうですね。 どうもありがとうございます。 >>762 どうもありがとうございます。
- 765 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 22:32:51 ]
- >>759
どこが?
- 766 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:00:00 ]
- もう引っ張るなよ
- 767 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:03:31 ]
- 別にfreeの話しを引っ張るつもりはない
しかし突っ込まずにはいられないだろ
- 768 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:04:35 ]
- 「あえていうなら、Win32APIスレでfreeの話をする辺りが。」
ってことで納得してくれよ(w
- 769 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:05:44 ]
- だからfreeは関係ないと
- 770 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:07:43 ]
- >>759 = >>766
- 771 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:10:46 ]
- freeは本質とはあまり関係ないんだからとりあえず黙っとこうぜ。
荒らしたいというなら別だが。
- 772 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:13:29 ]
- >>771
>>769 コードの話しだろ
- 773 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:15:15 ]
- 馬鹿しか居ないな
- 774 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:18:55 ]
- 以上をまとめると、HeapDestroy万歳ってことですね。
- 775 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:25:40 ]
- >>772
>>725はあってるよ どの道すれ違い消えろ
- 776 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:12:10 ]
- 昨日はサウンド関係で荒れて今日はfreeで荒れるのか
明日は何の話題で荒れるのかな〜?
- 777 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:18:14 ]
- 1:int *p;とint* p;
2:sizeof( char ) 3:インデント 好きなのを選べ
- 778 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:24:36 ]
- >>777
1 と 3 はコード整形ツールで抹殺されるから 2 しかない!
- 779 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:35:00 ]
- ウィンドウのシステムバーの青い部分をドラッグしたときにくるメッセージって何ですか?
WM_ENTER/EXITMENULOOPは左上のボタンで出るメニューのメッセージっぽいのですが…
- 780 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:47:13 ]
- WM_SYSCOMMAND
WM_WINDOWPOSCHANGING WM_WINDOWPOSCHANGED WM_MOVING WM_MOVE
- 781 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:47:54 ]
- >>778
Win32API的にsizeof (TCHAR)を使うので、このスレでは2すら話題にならない。
- 782 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:48:14 ]
- 結局見つけました
WM_ENTER/EXITSIZEMOVEでした。 お騒がせしました
- 783 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:52:10 ]
- CHARとかWCHARとかTCHARとか型がありすぎてわけわかんね
文字列に関してはワールドワイドなUnicodeに対応してるWCHARだけつかってればいいってこと?
- 784 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:52:46 ]
- いまさらハンガリアン記法でひとつ。
|

|