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


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

Win32API質問箱 Build59



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の頃は速度大差なし






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

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

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