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などの質問はそれぞれの言語や開発環境スレで
620 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 00:34:53 ] >>616 ミキサーを通さないから音質が上がるということで、 出力用に愛用している人間は少数ながらいる。 検索すると音質が上がったと喜んでいる人間がたしかにいる。 しかし私には同じ音にしか聞こえない。
621 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 00:36:07 ] >>619 大抵はそれで済んでしまうことが多いから まあ本人がそれでも0から作りたいっつーなら構わんが
622 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 00:36:53 ] >>620 ボリュームパスして大音量で再生されただけだろ あほすぎる
623 名前:550 mailto:sage [2007/11/28(水) 00:38:47 ] >>618 >>614 のモデルに合わせる使い方ができるでしょうか?
624 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 00:40:23 ] >>623 ここはプログラム板だから、ソフトの使い方は別の板へ逝け
625 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 00:43:04 ] サウンドカードのサウンドバッファが16bit以上をサポートしているなら音質は上がるかもしれない 128kbpsのmp3で満足するオレには分からんレベルだ
626 名前:550 mailto:sage [2007/11/28(水) 00:57:15 ] >>621 私も既製品で済むに越したことはないと思うのですが、 目的に合うものがないので作るしかないと思ったのです。
627 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 01:01:13 ] >>623 WindowsMediaEncoder PortForwarder sshd これを組み合わせると可能
628 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 01:12:17 ] >私も既製品で済むに越したことはないと思うのですが、 ちょwwwwwww ソフトウェア板でやってよwwwwwwwwwwwww 何のために100レスも消費してたんだwwwwwwwwwwwww
629 名前:550 mailto:sage [2007/11/28(水) 01:14:19 ] >>628 肝心なのは、直接目的に合うものが存在しないということですよ。
630 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 01:16:14 ] 単に探し足りないだけ、解説を読み足りないだけだと思う 現に出来るだろ
631 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 01:17:40 ] >>627 SSHって必要か?
632 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 01:19:12 ] 提示されたアプリについてまるで調べてないってのは分かるなあ〜 明らかに>>623 なんてレス読んで脊髄反射で聞いてるよね。
633 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 01:27:07 ] 要するに>>550 はESounDみたいなサウンドサーバ/クライアントが作りたいんだろ WindowsMediaEncoderだとストリーム配信みたいなことしかできないわな
634 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 02:10:45 ] >>629 多くのオーディオデバイスでは、リダイレクタ(ミキシング済みの音声出力を取り込める入力)が 使えるので、それを waveIn 等でとってくれば簡単に目的の処理が可能です。 (USB オーディオ等だと無いのが普通みたいだけど) ESound のようなものを作るのなら遅延はたぶんあまり許容できないでしょうから、 Windows Media Encoder 等ではなくシーケンス番号付けて RTP で送るのが良いと思います。 >>593 リダイレクタを使う実装では PC1 の wave 入力を利用することになるので、PC1側のアプリでは MICは利用できなくなります。PC1 に ASIO 対応の余分なオーディオデバイスを追加し、 それでPC1の(通常の)出力を取り込むなどできれば非常に簡単ですが、ハードの追加は ダメなんでしょうか? XP向けにフィルタドライバを書くのは恐らく非常に大変ですよ。
635 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 02:28:14 ] リモートデスクトップ接続、ってオーディオリダイレクタを 標準装備してるよね?
636 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 02:32:39 ] もうほっとけよ。 どうせWindowsMediaEncoderだって試してもいないだろうし。
637 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 03:34:50 ] >>636 WindowsMediaEncoderは役にたたんだろ。
638 名前:デフォルトの名無しさん [2007/11/28(水) 03:34:58 ] 単純な質問で悪いけど ウィンドウを不可視状態で作成するのって、CreateWindowのウィンドウスタイル引数に WS_OVERLAPPED ^ WS_VISIBLE でよかったっけ? なんか見えるんだけど・・orz 「^」って排他的ウンタラだったよね?よね?
639 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 03:42:28 ] どうせShowWindow(hWnd,SH_SHOW);してるとかそういうオチ
640 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 03:46:20 ] WS_OVERLAPPEDはWS_VISIBLEを含んでない件 つまり WS_OVERLAPPED & WS_VISIBLE → 偽 なので WS_OVERLAPPED ^ WS_VISIBLE = WS_OVERLAPPED | WS_VISIBLE
641 名前:デフォルトの名無しさん [2007/11/28(水) 06:17:14 ] すまん >WS_OVERLAPPED ^ WS_VISIBLE = WS_OVERLAPPED | WS_VISIBLE これわからん こんなのあり?
642 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 06:23:04 ] 0^1 = 1 1^1 = 0
643 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 06:39:07 ] >排他的ウンタラ 排他的論理和ですが何か? きみのやりたいことはこっちではないかな? WS_OVERLAPPED & ~WS_VISIBLE
644 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 06:39:59 ] >>641 わからんならWS_OVERLAPPEDだけ使え 故意に明示したいなら WS_OVERLAPPED & ~WS_VISIBLE こうじゃないか
645 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 06:40:39 ] かぶってしまった
646 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 06:47:23 ] 珍子がかぶってる
647 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 07:18:54 ] もし最初から最後まで表示する気が無いなら、WS_OVERLAPPEDも 指定するだけ無駄だな。
648 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 09:31:58 ] TotalRecorderみたいなことがしたいのか?
649 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 09:58:31 ] >>546 デバッグ情報はデバッガで読み込めば良い
650 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 10:24:37 ] >>550 は既存品がダメならH.323とそれに関係する資料見た方がよい ttp://www.itu.int/rec/T-REC-H.323/en
651 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 11:33:57 ] >>650 ESound みたいな使い方には既存のストリーミングサーバは Windows Media Encoder は遅延が大きすぎて使えないってだけだろ。 VNC のアドオンでも作ってるんじゃねーの。 リモートデスクトップでのオーディオのリダイレクトみたいに、 フィルタドライバじゃなくてそれ専用の仮想デバイスを作っちゃう手もあるな。
652 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 12:00:48 ] >Windows Media Encoder は遅延が大きすぎて使えないってだけだろ。 だれもそんなことはいっていない。 >VNC のアドオンでも作ってるんじゃねーの。 だれもそんなことはいっていない。 >リモートデスクトップでのオーディオのリダイレクトみたいに、 >フィルタドライバじゃなくてそれ専用の仮想デバイスを作っちゃう手もあるな。 リモートデスクトップで確認してみれば自明だが、DirectSoundで音楽再生でもしようものなら音がとびまくる。 だれももいっていないことを勝手に想定したり、使い物にならない手段を提示したり、 いったい何がしたいんだ?
653 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 12:09:53 ] >>652 リモートデスクトップで音がとぶから仮想デバイスが使い物にならないだなんて飛躍しすぎだろ
654 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 12:28:02 ] >>652 質問者自身が ESound みたいなのを作りたいって言ってるジャンw 逆に>>650 は質問のどこを見てプロトコルに関する質問だと思ったの? 学習困難児だった?
655 名前:デフォルトの名無しさん [2007/11/28(水) 12:38:37 ] 漏れが華麗に要件をまとめた (1) ESounD のようなリダイレクタ (2) 同時にMICも使いたい (3) 取ってきた音は1つのサーバに送って、サーバで鳴らす (2)があるから、入力を占拠する「音源ボードのリダイレクタ(+WME)」はダメ。 マイクロソフトの人間は仮想デバイスを使ったが、>>652 が否定してるから 仮想デバイスはダメ。フィルタドライバは>>634 が否定してるからダメ。
656 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 12:47:16 ] まだこのネタ続いてるのかよw おまいらもういいだろww
657 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 12:54:35 ] 質問者を置き去りにして外野が騒いでるのは滑稽だな 外野といってもあーだこーだ言ってるのは一人か
658 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 15:07:49 ] 仮想デバイス作ればいいやん。 音飛びするのは帯域が足りてないだけかと。
659 名前:デフォルトの名無しさん [2007/11/28(水) 15:23:53 ] >>550 に関しては、お前ら 1. windowsで流れているサウンドをフックすることは可能でしょうか? 2. もし方法があれば、調べれば良いポイント・キーワードなどを教えていただけないでしょうか。 1. Yes or No 2. if( 1. == Yes) 調べれば良いポイント・キーワードを教える これだけ、答えればOK 余計な詮索、アドバイスせずにこれだけ答えてやれよ。俺俺妄想レスするなよ
660 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 15:34:23 ] ごめん汚して でも見てほしい 【政治】 「放置すると、日韓関係にヒビ」 外国人参政権付与、成立への流れ加速も…公明に各党同調、自民反対派は沈黙、首相次第か★10 news22.2ch.net/test/read.cgi/newsplus/1196226030/259n- 参考動画 www.nicovideo.jp/watch/sm1636901
661 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 16:25:06 ] HeapFreeしたときの戻り値が1404673とかなんだけど これは何の数値?
662 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 16:39:43 ] なんだろうね メモリアドレスではないみたいだからヒープハンドルかなんかかな 調べてないけど
663 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 16:48:01 ] >>662 調べてよ! 気になってよるしか眠れない!
664 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 16:50:13 ] 寝れるならいいじゃない
665 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 16:59:02 ] 昼寝したいのにー
666 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 18:02:32 ] 666
667 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 19:17:16 ] ____ / \ / \ / \ ネット社会の闇を見ました / (●) (●) \ | (__人__) | ________ \ ` ⌒´ ,/ | | | ノ \ | | | /´ | | | l | |
668 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 19:20:28 ] ウィンドウサイズ変更時に、 一瞬背景色で描画され ちらつくのですが、回避する方法は何かありませんか?
669 名前:デフォルトの名無しさん [2007/11/28(水) 19:29:46 ] >>643-644 そうでしたorz &と|は良く使うので、間違わないんだけど^と~は滅多に使わないのでごっちゃになってた トンクス
670 名前:デフォルトの名無しさん [2007/11/28(水) 19:31:15 ] >>649 そもそもデバッガが何のために付いてるのか良く分からん 使い方も分からんし
671 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 19:34:06 ] >>668 WNDCLASSのhbrBackgroundにヌルブラシを設定する WM_ERASEBKGNDでTRUEを返す
672 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 20:01:27 ] ~はかなりよくつかうだろ
673 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 20:23:50 ] ビットフラグを削除する時に使うね。
674 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 20:26:55 ] >>670 デバッグするために決まってるだろ 普通、開発はデバッグ版でして、バグがなければリリース版だろ
675 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 20:40:48 ] デバッガという名前なんだから勝手にバグを直してくれればいいのに 使えねーな
676 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 20:43:05 ] だったらバグのあるプログラムを書くんじゃねーよ下手糞とデバッガが仰ってます
677 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 20:54:04 ] この流れ好きだなぁw
678 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 20:58:48 ] そうか?
679 名前:デフォルトの名無しさん [2007/11/28(水) 21:15:17 ] タスクバーの右側に 「ネットワークケーブルが接続されていません」とか「ワイヤレスネットワークに接続しました」 とか状態が表示されていますが このネット接続の状態変化を監視するAPIを教えてください
680 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 21:22:53 ] GetIFTable?
681 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 21:44:19 ] >>680 そんな感じです。ただ今回は変更の検知をしたいのでこれは使えません MSDNみたらGetIFTableの近くにNotifyAddrChangeというのがあったのでこれを調べて見ます ありがとう
682 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 22:02:28 ] IPv6のネットワークポートで接続されている機器がある時、そのアドレスがLinkLocalであった場合に 付加するスコープIDの取得の仕方を教えてもらえないでしょうか。 IP Helper関数のGetAdaptersAddresses()を使って取得できる値のいずれからしいということは わかったのですが、列挙される構造体のうち、どれが目的の値か特定できません。
683 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 22:56:11 ] hWndとhDCとDIBの関係がいまいちよくわからないんだけど、わかりやすく説明されてるサイトとかない?
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の頃は速度大差なし