- 1 名前:デフォルトの名無しさん [2007/01/10(水) 00:00:39 ]
- 1 : ◆Manna2uCLg :2005/04/15(金) 13:33:14
Visual C++入門者・初心者からの質問を、 お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5。
- 732 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 13:24:53 ]
- 質問です。
複数のコントロールをcreateで作成するときに、 リソースIDを割り当てることに困っているのですが、 割り当てようとしているID値が他で使われていないか、 または使われていないID値を返すような関数はありますでしょうか? よろしくお願いします。
- 733 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 17:29:04 ]
- 自分で管理してないと使いものにならないと思うんだが気のせいか?
使う予定がないんだったら全部staticにしとけばいいし
- 734 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 19:25:05 ]
- >>732
VC2005ならリソースを選択した状態で編集メニューのリソースシンボル。 新規作成で追加し、そのIDを使うようにすれば管理は多少楽かも。 でも使い勝手は良くないな...
- 735 名前:658 mailto:sage [2007/03/10(土) 20:10:15 ]
- pc11.2ch.net/test/read.cgi/tech/1162913156/268-280
というやりとりを経て戻ってきました。 &BitmapInfo.bmiHeaderの値がおかしい気がするんですが・・・。
- 736 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 20:30:23 ]
- 1. もう一度最初から組みなおす
2. デバッガを上手く使う 3. 諦める 少なからず、デバッガについて機能を調べ上手に利用して 原因を特定していくとかいう根性がないようであれば、 VCとは相性が悪かったと思って別の言語に移った方がいい。 VC(というか、C/C++)は結構面倒だ。 Visual Studio でのデバッグ msdn2.microsoft.com/ja-jp/library/sc65sadd(VS.80).aspx C# なんかメモリなんかあんまり考えなくて済むから割とオススメだぞ。
- 737 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 20:39:09 ]
- 実は付近のメモリ破壊していて
そのとばっちりを受けている場合は直すの大変だよね。 まず原因を探すのが大変。
- 738 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 20:41:04 ]
- >>736
C#使いたいんですがXtraがC++しか対応してないんですよ。orz
- 739 名前:658 mailto:sage [2007/03/10(土) 20:49:45 ]
- あと、デバッガ使えるなら使ってるんですよ。
いかんせん組み上げてあとは動くかどうか神頼みみないな検証しかできないので困ってます。orz
- 740 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 20:57:54 ]
- > いかんせん組み上げてあとは動くかどうか神頼みみないな検証しかできないので困ってます。orz
良く解らんけど、何故に VC のデバッガが利用できない? プラグインとして動作するしかないからか? もしそれならデバッガのアタッチ機能を使え。プロセスに侵入するんだ。 (とはいえ、Mcromedia製の云々っぽいからデバッガに関連する何かはありそうだが…) それと、デバッガの機能としての 「特定のメモリアドレスにアクセスした場合にブレーク」 も併用するとよいと思うぞ。
- 741 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 02:19:13 ]
- createで作ったStatic Controに画像(jpg)を表示する処理を入れたのですが、
ソース上では先にcreateしているのに、 実行時には「画像描画」→「createしたStatic Controlの表示」の順になっているためか、 画像の上にstaticがでてしまいます。 どうにかならないでしょうか・・・よろしくお願いします。
- 742 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 08:31:18 ]
- Staticつかう意味があるんだろうか?
- 743 名前:741 mailto:sage [2007/03/11(日) 08:53:50 ]
- >>742
当方、Staticじゃないと表示させられないという認識でおりました。 他のコントロールでも表示できるのであればそちらでよいと思ってます・・・
- 744 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 09:24:02 ]
- staticが表示するのと別のものを自分で表示するんだったら
static使う意味がないんじゃないかということ
- 745 名前:743 mailto:sage [2007/03/11(日) 09:43:50 ]
- >>744
説明がちょっとわかりづらくなっていました。すみません・・・ Static Controlの枠の上にjpgを乗せるということをやりたかったんですが、 どういうわけか画像がStatic Controlの下に隠れてしまうんです。。。 Static Controlの属性が悪いのかなあ・・・
- 746 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 11:21:22 ]
- Static Controlのウィンドウスタイルだろ
オレもSTATIC並べて枠と座標だけ利用することはたまにやる
- 747 名前:743 mailto:sage [2007/03/11(日) 11:26:02 ]
- >>746
回答ありがとうございます。 そのときのStatic Controlのウィンドウスタイルは どのようになっていますでしょうか? 私は SS_BITMAP | SS_WHITERECT | WS_BORDER | WS_VISIBLE でやっているのですが、なにか足りないものがあるでしょうか・・・ よろしくお願いします。
- 748 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 12:14:23 ]
- ビットマップも表示するんだ
- 749 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 12:17:05 ]
- SS_BITMAPは自分で中も描いちゃうから消えるだろ
- 750 名前:743 mailto:sage [2007/03/11(日) 12:48:39 ]
- >>748-749
SS_BITMAPを消してみましたがまだ駄目みたいです・・・ 泣きそう・・・
- 751 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 13:07:36 ]
- SS_WHITERECT も中を描画するだろw
枠だけとかあるだろ
- 752 名前:743 mailto:sage [2007/03/11(日) 14:00:30 ]
- >>751
SS_WHITERECTを消して、 SetBkModeでTRASPARENTにしてみても変わらないです。。。
- 753 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 14:07:00 ]
- SS_WHITEFRAMEとかSS_BLACKFRAMEとかあるだろう
- 754 名前:743 mailto:sage [2007/03/11(日) 14:18:25 ]
- >>753
GODと呼ばせてください・・・ できました・・・ 今日中に作成しないといけないものだったので、 昨日から胃が痛くてしょうがない状態でした。 ありがとう、本当にありがとうございました!
- 755 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 18:36:23 ]
- 「胃が痛くてしょうがない状態」
あああ…。悲しいなそれは。
- 756 名前:デフォルトの名無しさん [2007/03/15(木) 15:56:25 ]
- 質問があります。
MS VC++.NET 2003 なのですが、以下のソースで三角を描画しました。 Pen * pen = new Pen(Color::Black); Point poly[] = { p1, p2, p3 }; g->DrawPolygon(pen, poly); これは成功しました。 今度はこれを塗りつぶしたいのですが、どうすれば良いのでしょうか? ここでのBrushの使い方がいまいち分かりません。 よろしくお願いします。
- 757 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 16:18:34 ]
- FillPolygon
- 758 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん [2007/03/15(木) 17:03:50 ]
- w= *((ULONG *)( &iv->rbuf[iv->rbufq] ));
既設のvc++のソースを調査しています。 上記、処理の実行結果(w)には何が設定されるかわかりません。 *((ULONG *) ってどういう意味ですか? ご存知の方、ご教授願います。
- 760 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:05:36 ]
- unsigned long のポインタにキャストして、そのアドレスが指してる値を取り出してる
- 761 名前:デフォルトの名無しさん [2007/03/15(木) 17:09:22 ]
- >>760 ご教授に感謝
- 762 名前:デフォルトの名無しさん [2007/03/15(木) 19:05:02 ]
- テキストファイルのダンプ(16進)を表示したい。VC++のツールにありますか?
・メモ帳でunicode形式で保存したファイルを CStdioFile::ReadString()した時 意図しない動作をするので unicode形式のファイルの中身をコードで確認したい Visual C++ standard editionです。 ヘルプで検索するとデバッグ時のメモリダンプばかりヒットしてしまいます。 よろしくお願いします。
- 763 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:08:56 ]
- vectorあたりでバイナリファイルエディタ探すのが早いんじゃ
- 764 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:13:42 ]
- >>762
どのバージョンかわからんのであれだが、 ファイルメニュー - 開く - ファイル で出たダイアログで ファイルを選択し、開くボタンの右の矢印を押して ファイルを開くアプリケーションの選択からバイナリエディタを選べばいける バージョンによって開き方が違うかも
- 765 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:23:39 ]
- >>764
VC++2005 でバイナリエディタ開けました! ありがとうございます。 >>763 レス d。
- 766 名前:658 mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 14:53:35 ]
- #pragma warning(disable: 4006)
- 768 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 14:58:28 ]
- リンクのワーニングにそれ使えるの?
>>766 リンク指定してるライブラリを調べてみて。重複してないか?
- 769 名前:658 mailto:sage [2007/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 mailto:sage [2007/03/21(水) 15:26:06 ]
- ついでに書くと、strmbasd.libとstrmbase.libをプロジェクトのディレクトリにコピーして使ってます。
それがまずいんでしょうか?
- 771 名前:658 mailto:sage [2007/03/21(水) 15:45:25 ]
- strmbase.libがResource Filesに入っていたので外しました。
数が700くらいまで減りましたがまだ大量に発生中です。 www.users.gr.jp/blogs/hidori/archive/2005/02/14/8990.aspx これズバリだと思ってこのとおりに試してもダメでした。 リンク先のmsdnサイトのやり方も試してみましたがダメです。orz.......
- 772 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 16:34:06 ]
- >>769
それはデフォルトライブラリの使用をありにしたうえで別に指定しているのか?
- 773 名前:658 [2007/03/21(水) 16:43:51 ]
- >>772
今出先なんで確認できないんですが、多分デフォルトありにしてます。 帰ったら早速調べてみます。
- 774 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 17:02:25 ]
- >> 658
> 向こうでも書きましたが、動きますた 原因と問題解決方法と書いておけ。 将来的に同じような所で躓くヤツも居るだろう。
- 775 名前:658 mailto:sage [2007/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 ); で再度取得する。 というかリンク先のソースをコピペでも動くます。 ttp://wwwdoi.elec.nara-k.ac.jp/html/jisyu/dxm/cap2/index.html CopyMemoryで落ちるとか、ヘッダに書くと動かないってのは謎のままです。orz
- 776 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 18:43:00 ]
- まとめ
拾って来たソース適当にコピペしたら動きました。 でもワーニング出まくりです。
- 777 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 18:52:44 ]
- たしか、#defineの具合によって、UUIDが実体化されることがあったはず。
だから、どこでも#defineせずにlibを含めるか、どこか1つの翻訳単位で 実体化させて、UUIDの含まれたlibはリンクしないか、どちから。
- 778 名前:658 mailto:sage [2007/03/21(水) 20:27:07 ]
- >>776
まあそれで正解です。w >>777 ちょっと時間ないんで明日にでも試してみます。 777オメ。
|

|