★初心者にVisual C++を教えるスレ★ Part25at TECH
★初心者にVisual C++を教えるスレ★ Part25 - 暇つぶし2ch758:デフォルトの名無しさん
07/03/15 16:20:18
中を塗り潰すのはFill~と命名されている。
FillPolygonはDrawでPenを引数に取っていた代わりにBrushを引数に取る。
単色に塗り潰すブラシはBrushの派生の1つSolidBrush、ほかにも何種類かブラシがある。
だから結局こうなる。
Brush* brush = new Brush(Color::Black);
Point poly[] = {p1, p2, p3};
g->FillPolygon(brush, poly);


759:デフォルトの名無しさん
07/03/15 17:03:50
w= *((ULONG *)( &iv->rbuf[iv->rbufq] ));

既設のvc++のソースを調査しています。
上記、処理の実行結果(w)には何が設定されるかわかりません。
*((ULONG *) ってどういう意味ですか?
ご存知の方、ご教授願います。


760:デフォルトの名無しさん
07/03/15 17:05:36
unsigned long のポインタにキャストして、そのアドレスが指してる値を取り出してる

761:デフォルトの名無しさん
07/03/15 17:09:22
>>760 ご教授に感謝

762:デフォルトの名無しさん
07/03/15 19:05:02
テキストファイルのダンプ(16進)を表示したい。VC++のツールにありますか?
・メモ帳でunicode形式で保存したファイルを CStdioFile::ReadString()した時
 意図しない動作をするので unicode形式のファイルの中身をコードで確認したい

Visual C++ standard editionです。
ヘルプで検索するとデバッグ時のメモリダンプばかりヒットしてしまいます。
よろしくお願いします。

763:デフォルトの名無しさん
07/03/15 19:08:56
vectorあたりでバイナリファイルエディタ探すのが早いんじゃ

764:デフォルトの名無しさん
07/03/15 19:13:42
>>762
どのバージョンかわからんのであれだが、
ファイルメニュー - 開く - ファイル で出たダイアログで
ファイルを選択し、開くボタンの右の矢印を押して
ファイルを開くアプリケーションの選択からバイナリエディタを選べばいける

バージョンによって開き方が違うかも

765:デフォルトの名無しさん
07/03/15 19:23:39
>>764
VC++2005 でバイナリエディタ開けました! ありがとうございます。

>>763
レス ㌧。

766:658
07/03/21 14:10:17
向こうでも書きましたが、動きますた。
ご迷惑をおかけしました。

迷惑ついでにもうひとつ質問が。
コンパイル時にLNK 4006のwarningが大量発生するのです。
strmbase.lib(strmiids.obj) : warning LNK4006: _IID_IRegFilterInfo は wcamregister.obj で定義されています; 2 つ目以降の定義は無視されます
strmbase.lib(strmiids.obj) : warning LNK4006: _IID_IFilterInfo は wcamregister.obj で定義されています; 2 つ目以降の定義は無視されます
strmbase.lib(strmiids.obj) : warning LNK4006: _CLSID_FilgraphManager は wcamregister.obj で定義されています; 2 つ目以降の定義は無視されます
strmbase.lib(strmiids.obj) : warning LNK4006: _IID_IQueueCommand は wcamregister.obj で定義されています; 2 つ目以降の定義は無視されます
strmbase.lib(strmiids.obj) : warning LNK4006: _IID_IDeferredCommand は wcamregister.obj で定義されています; 2 つ目以降の定義は無視されます
といった感じのが1000近く出ます。
動くので問題はないんですが、コンパイル時にウザいので解決したいなーと思った次第です。
どなたか解決方法をご存知の方はいらっしゃいますでしょうか?

767:デフォルトの名無しさん
07/03/21 14:53:35
#pragma warning(disable: 4006)

768:デフォルトの名無しさん
07/03/21 14:58:28
リンクのワーニングにそれ使えるの?

>>766
リンク指定してるライブラリを調べてみて。重複してないか?

769:658
07/03/21 15:09:23
>>767
効かないようです。

>>768
winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib strmbasd.lib
以上がリンクしているライブラリですね。

770:658
07/03/21 15:26:06
ついでに書くと、strmbasd.libとstrmbase.libをプロジェクトのディレクトリにコピーして使ってます。
それがまずいんでしょうか?

771:658
07/03/21 15:45:25
strmbase.libがResource Filesに入っていたので外しました。
数が700くらいまで減りましたがまだ大量に発生中です。

URLリンク(www.users.gr.jp)
これズバリだと思ってこのとおりに試してもダメでした。
リンク先のmsdnサイトのやり方も試してみましたがダメです。orz.......

772:デフォルトの名無しさん
07/03/21 16:34:06
>>769
それはデフォルトライブラリの使用をありにしたうえで別に指定しているのか?

773:658
07/03/21 16:43:51
>>772
今出先なんで確認できないんですが、多分デフォルトありにしてます。
帰ったら早速調べてみます。

774:デフォルトの名無しさん
07/03/21 17:02:25
>> 658
> 向こうでも書きましたが、動きますた
原因と問題解決方法と書いておけ。
将来的に同じような所で躓くヤツも居るだろう。


775:658
07/03/21 18:13:52
>>772
「デフォルトライブラリをすべて無視」にチェック入れても同じ状態(というかリンクエラーが追加される)ですた。

>>774
原因:DVSD形式でデータが流れてくるためDIB形式に変換しようとしたら失敗する。
対処:
AM_MEDIA_TYPE amt;
ZeroMemory(&amt, sizeof(AM_MEDIA_TYPE));
amt.majortype = MEDIATYPE_Video;
amt.subtype = MEDIASUBTYPE_RGB24;
amt.formattype = FORMAT_VideoInfo;
pGrab -> SetMediaType( &amt );
といった感じで一度RGB24形式に指定してあげた後
pGrab -> GetConnectedMediaType( &amt );
で再度取得する。
というかリンク先のソースをコピペでも動くます。
URLリンク(wwwdoi.elec.nara-k.ac.jp)

CopyMemoryで落ちるとか、ヘッダに書くと動かないってのは謎のままです。orz

776:デフォルトの名無しさん
07/03/21 18:43:00
まとめ
拾って来たソース適当にコピペしたら動きました。
でもワーニング出まくりです。

777:デフォルトの名無しさん
07/03/21 18:52:44
たしか、#defineの具合によって、UUIDが実体化されることがあったはず。
だから、どこでも#defineせずにlibを含めるか、どこか1つの翻訳単位で
実体化させて、UUIDの含まれたlibはリンクしないか、どちから。

778:658
07/03/21 20:27:07
>>776
まあそれで正解です。w

>>777
ちょっと時間ないんで明日にでも試してみます。
777オメ。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch