- 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。
- 577 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 18:44:27 ]
- メンバ変数の登録がちゃんとできてない。
もう一度やり直してみるといい。 対象のボタンを右クリックして「メンバ変数の追加」、 んでコントロール変数として適当なのを追加。
- 578 名前:570 mailto:sage [2007/02/27(火) 18:52:14 ]
- >>576
>>577 了解しました。 もう一度見直してみます。
- 579 名前:デフォルトの名無しさん [2007/02/27(火) 19:50:05 ]
- roopoutには確実にFALSEがはいっているのに
if(roopout==FALSE) break; else .... が機能しませんが環境によってそういうことがあるのですか? デバッグしながら確実に中にはいってるものを確かめましたがelseのほうにいきます
- 580 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 19:56:06 ]
- FALSEとfalseは違うんじゃなかったっけ
if (!roopout) とか書いた方が安全
- 581 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 19:57:12 ]
- それかifの後ろのどっかに変なセミコロンが紛れ込んでいて
条件式が真の場合にただの空行を実行してるとか
- 582 名前:デフォルトの名無しさん [2007/02/27(火) 19:57:24 ]
- やってみます
- 583 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:03:07 ]
- ifとelseの間がbreakだけなので、ステップ実行で確認したときあたかも素通りしたように
見えるだけなんじゃない?
- 584 名前:デフォルトの名無しさん [2007/02/27(火) 20:06:22 ]
- ではなぜelseの処理に
- 585 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:06:35 ]
- 2005から始めた初心者はかなりきつい状態だろうな
本もサイトも全然ないもんな……
- 586 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:21:12 ]
- 実は
if(roopout=FALSE) と書いていた。
- 587 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:23:05 ]
- それに気付かなくてえらい苦労をした経験から、
条件文は必ず定数を先に書くことにしてる if(200 == myIQ) みたいな
- 588 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:29:16 ]
- 今時それくらいは警告を出すから、わざわざナンセンスな書き方をする必要など無い。
- 589 名前:デフォルトの名無しさん [2007/02/27(火) 20:39:44 ]
- そんな書き方してません
再起動したりしたら動きました
- 590 名前:516 mailto:sage [2007/02/27(火) 21:44:56 ]
- ありがとうございました。
テキストファイルを見比べてみて同じようにすれば出来ました。 VC++6.0のSDKのときはライブラリをリンクして winsock2.h をインクルードして たんですが、今回、2003のMFCの場合、ヘッダをインクルードして後はちょこちょこっと 関数を呼び出しているだけでライブラリのリンクは特にしていないように思えました。 良く分からなかったのですが、とにかく出来ました。
- 591 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 01:23:13 ]
- >>588
VCだと警告されない罠。 gccでは文句言われるので、そっちに合わせた書き方してるけど。
- 592 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 01:51:43 ]
- warning C4706: 条件式の比較値は、代入の結果になっています。
- 593 名前:591 mailto:sage [2007/02/28(水) 02:46:30 ]
- ありゃ、見逃してた。ひゃくにんいっちゅの所為かorz
安全性考えると、pragmaか/wオプションでレベル下げとくのもありかなあ。
- 594 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 14:56:39 ]
- if(FALSE == flag)
みたいに定数を先に書くソースを見ると身震いするほど嫌悪感を抱くのは俺だけ?
- 595 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 15:09:53 ]
- 一度精神科を受診することをオススメする。
- 596 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 15:43:04 ]
- >>594
初めて見た。
- 597 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:00:54 ]
- >>594
オレも。
- 598 名前:594 mailto:sage [2007/02/28(水) 17:09:35 ]
- >>595
ちょっと受診してくるから良い病院を紹介してくれ
- 599 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:18:59 ]
- www.kouno.jp/home/c_faq/c17.html#4
- 600 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 00:39:08 ]
- 打ちそこねで=を一つ落とすことはあっても
うっかりしてリテラルと変数を逆に書くなんてことはない。
- 601 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 08:11:35 ]
- >>600
そりゃいないだろ わざと逆にやってんだから
- 602 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 10:24:23 ]
- プログラムを文章として読むと、それが気持ち悪いんだよね。
文章のように読めるプログラムを理想としてるのがわるいのかなあ。
- 603 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 11:20:23 ]
- >>602
そうそう。たとえば、 if( a == 100 ) だと、頭の中で「a は 100 か」と読める。 でも if( 100 == a ) だと、「100 は a か」と読んでしまう。 主題が a ではなくなってしまい、思考が後戻りしてしまう感覚が あってなんかイラッとする。
- 604 名前:デフォルトの名無しさん [2007/03/01(木) 11:27:04 ]
- デバッグの停止ボタンを押すとデバッグ中のプログラムは停止しますが
解放処理等はちゃんと行われているのでしょうか?
- 605 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 12:04:11 ]
- >>604
行なわれるものと行なわれないものがある。
- 606 名前:デフォルトの名無しさん [2007/03/01(木) 12:09:02 ]
- C言語で
#include <stdio.h> int main(void) { printf("こんにちは\n"); return 0; } って書いたプログラムってそのままC++で実行できる? それとも #include <iostream> using namespace std; int main() { cout << "こんにちは" << endl; } って書かなきゃだめ?
- 607 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 12:10:41 ]
- そのままできるのがC++の強み
- 608 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 12:16:52 ]
- 正しくは#include <cstdio>
- 609 名前:デフォルトの名無しさん [2007/03/01(木) 12:18:10 ]
- >>607
そうなんですか〜 ありがとうございます。 はじめたばかりの初心者ですみません。
- 610 名前:デフォルトの名無しさん [2007/03/01(木) 12:21:24 ]
- #include <cstdio> ですか。間違えました。
- 611 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 12:42:34 ]
- <cstdio>を使うならprintfではなく、std::printfと書かなければいけないぞ。
- 612 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 13:01:53 ]
- C++だからといって、cin,coutに拘る必要は無い。
とか思う俺は年寄りなんだろうな……
- 613 名前:デフォルトの名無しさん [2007/03/01(木) 13:15:26 ]
- すみません。もうひとつ。
#include <stdio.h> int main(void) { printf("こんにちは\n"); return 0; } マイクロソフトのVisual C++でやってみたところ 画面が一瞬出てからすぐ消えちゃうんですがどうすればいいでしょうか?
- 614 名前:デフォルトの名無しさん [2007/03/01(木) 13:16:41 ]
- こんにちは→helloに変更します。
- 615 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 13:22:56 ]
- >>613
Visual Studioのバージョンによるが「デバッグなしで開始」するか、 コマンドプロンプトを開いてそこから実行する。
- 616 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 14:15:45 ]
- >>613
何回も何回も出るな、その質問。 >>615でいいけど、デバッグしたいなら rerturn にブレークポイント置くか、その前に getchar(); でも入れとけば。
- 617 名前:デフォルトの名無しさん [2007/03/01(木) 14:23:07 ]
- >>615-616
ありがとうございます。
- 618 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 15:07:29 ]
- C++をCコンパイラとして使うのはやめた方が良くないか?
それは強みというより、自分の首を自分で絞めているようなもののような気がする。 stdioなんて使わずに、がんばってC++のライブラリを使用すべきなんじゃないか。 論じる次元が違うかもだけど、構造化プログラミングというパラダイムとオブジェクト 指向というパラダイムを同時に使っているような気がして、なんか嫌だ。 C++がますます煙たがれ、衰退するような気がする。
- 619 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 16:19:30 ]
- >>618
話が飛躍しすぎ
- 620 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 16:32:13 ]
- >>618
C++はそういう複数のパラダイムを使えることが強みだと C++の作者Stroustrupも自著D&Eで言っている。
- 621 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 16:37:20 ]
- 質問があります。
afxwin.hをインクルードしているのにも関わらず、CWndを使うと error C2061: 構文エラー : 識別子 'CWnd' というのが出ます。 CWndを使用するためにはafxwin.hをインクルードするだけでは足りないのでしょうか?
- 622 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 18:44:42 ]
- そのエラーの行を、前後数行含めてコピペしてみ
- 623 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 19:24:24 ]
- >>622
返答ありがとうございます。 この行が先頭に出て、他にエラーは出ません。
- 624 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 21:06:01 ]
- afxwin.hがあればいい
- 625 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 21:14:14 ]
- つまりそれ以外の原因を疑えということ
- 626 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 22:31:17 ]
- 俺としてはcinとかcoutってそんなにいいものなのかねって思う。
C言語に変なもの持ち込んでC++を作りやがってとすら思っている。
- 627 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 03:05:26 ]
- > 俺としてはcinとかcoutってそんなにいいものなのかねって思う
実に便利だと思う。STLと絡めると特に。
- 628 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 08:40:14 ]
- ユーザ定義型を組込型と同じように入出力できるのはいいと思う。
- 629 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 08:46:27 ]
- VCじゃなくてC/C++の話になると書き込みが増えるのは
VCの話には参加できなくてROMってる初心者が多いということか
- 630 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 08:56:49 ]
- 俺もストリームだけは便利さがいまだに分からん。
まあテキスト入出力自体あまりしないからかもしれん、 作るのは GUI アプリばっかだからコンソールは使わないし、 、データ保存はもっぱらバイナリだし、 設定ファイルは WritePrivateProfileString だからなあ
- 631 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 12:18:27 ]
- >>629
C/C++の話の方がdeepな感じがするが
- 632 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 13:25:30 ]
- VC6使ってる初心者が多いしVCは万年初心者が多いのか?
C/C++のベテランでも挫折するという話だし
- 633 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 17:22:29 ]
- いつまでたっても初心者だ
- 634 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 19:53:59 ]
- 完全VCオンリーで語ることなんかあるのか?
- 635 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 20:27:38 ]
- VC固有の動作、CRTの独自拡張、MFCやATLとか
- 636 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 21:55:11 ]
- VCという道具について語るのが目的か?
VCという道具を使ってWindowsプログラミングをするのが目的だろ
- 637 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 22:58:37 ]
- API直打ちしている人はC言語のfgetsみたいにファイルから
テキストを一行取得するようなことをしたい場合は ReadFileとかで適当なバイト数読み出して 行末を見つけて抜き出す、のようにやっているんですか?
- 638 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 23:38:21 ]
- 人によるだろう
- 639 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:38:18 ]
- >>637
そうだよ。SDKだけでやるならね。
- 640 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 05:34:28 ]
- ちなみに CRT は内部で
>>637 が言ってることをやってるよ。
- 641 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 09:13:46 ]
- SDKオンリーだろうかCランタイムだろうがVBランタイムだろうが
自前でやるか、呼び出す関数・メソッドが内部でやるか ただそれだけのことでしかないわな
- 642 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 11:49:44 ]
- 641って馬鹿?意味を全く理解してないw
- 643 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 13:59:09 ]
- たぶんCでべたに書くのが一番効率がいい。
けど安全性とか汎用性とかもあるから既存のライブラリを使う場合もある。 どれが一番いいのか?といわれたら 自分で何種類か書いて実際試してみるしかないだろうな 自分で試さずに人に聞いたり脳内でやってるやつは使いものにならない。
- 644 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:20:21 ]
- 質問です。
プロパティウィンドウからコントロールのフォントや色を変えたいのですが、 それらしい項目が見つかりません。 使っているVCのバージョンは2005なのですが、昔のバージョンは それっぽいのがあったと思ったのですが・・・ どうやったら変更できますでしょうか?
- 645 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:30:45 ]
- もともとネェヨ
- 646 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:32:59 ]
- いちばん肝心な情報が抜けてるから
- 647 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 23:49:02 ]
- >>644
それはVBだ
- 648 名前:デフォルトの名無しさん [2007/03/06(火) 08:50:44 ]
- VC++ やっと2003から2005に上げられたんですけど
メニューのイベント・ハンドラが変・・・・ 2003ではメニューのアイテムから イベントハンドラの追加を選ぶと、 『追加して編集』と『コードを編集』ってボタンがあって すでにイベントハンドラがある場合は、 『コードを編集』を押すと、 ソースのその関数に飛んでくれたんだけど 2005では『追加して編集』しかないんです これって使用なんですか? 『コードを編集』はなくなって、自分で関数を探すしかないんでしょうか?
- 649 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 10:19:47 ]
- 「コードを編集」はある。見えないだけだろう
タブで進めてリターン押してみ IEのバージョンは?
- 650 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 10:23:51 ]
- 確かにIE7だと見えない。
>>649 の言うように、タブで移動して押すしかないな。
- 651 名前:デフォルトの名無しさん [2007/03/06(火) 12:37:22 ]
- >>649
>>650 確かにIE7です 『追加して編集』と『キャンセル』の間が開いてて タブで移動していって適当なところでリターンしたら『コード編集』できました とりあえず、ありがとうございます だけど、コード編集ボタンを直接見たり、押すことはできないんですか? IEのバージョンを6とかに戻せばいいんでしょうか? (戻せるのかどうかわかりませんが・・・・)
- 652 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 12:45:29 ]
- >>644を見て思ったんだけど
unixのmotifなんかだとあらゆるコンポーネントにほとんど同一のメンバを追加することができる。 windowsのgui開発言語もそうなればいいのに。
- 653 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 13:42:57 ]
- windowsのgui開発といってもVCに限定してもいろいろあるし
- 654 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 13:55:30 ]
- リソースエディタはリソースを編集するエディタだから、
リソースの仕様に含まれていない以上、できなくて当然とも言えるな。
- 655 名前:デフォルトの名無しさん [2007/03/06(火) 14:16:21 ]
- すいません、質問があります。
MS VC++.NET2003なのですが、 画面をキャプチャする方法をどなたかご存知でしょうか。 画面全体でなくてもいいのですが、 (マウスカーソルの部分の1ドットだけでいいんですが)、 キャプチャしてそこからマウスカーソルの部分の色情報を取得したいと考えています。 よろしくお願いします。
- 656 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:27:16 ]
- マウスのイベントかなんかで
指定された座標のピクセルの RGB (赤、緑、青) 値を取得
- 657 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:38:18 ]
- デスクトップのDC取得してGetPixel
- 658 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 16:31:25 ]
- どうしてもうまくいかんので質問すま。
wwwdoi.elec.nara-k.ac.jp/html/jisyu/dxm/cap2/index.html のソースを参考にDirector用のXtraを作成中なのです。 んで、ソース中の BITMAPINFO BitmapInfo; をヘッダに書くとその直後のCopyMemoryの箇所で落ちるのです。 何故? ちなみに開発環境はWindowsXP+VC6.0です。
- 659 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:20:03 ]
- > 何故?
コードがおかしいから
- 660 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:30:33 ]
- ドコガオカシインダロウ・・・(;´д`)
- 661 名前:658=660 mailto:sage [2007/03/06(火) 17:32:11 ]
- ID出ないの忘れてた。
- 662 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:35:36 ]
- 落ちるコードを見せろ
つーか、Copyで落ちるならサイズ間違ってんだろ
- 663 名前:658 mailto:sage [2007/03/06(火) 17:37:40 ]
- HRESULT Cam::initialize()
{ HRESULT hr; IBaseFilter *pSrcFilter=NULL; CoInitialize(NULL); // COMの初期化 ------------------------------(中略)-------------------------------------------------- // ビットマップ情報の取得 pGrab -> GetConnectedMediaType( &amt ); // ビデオ ヘッダーへのポインタを獲得する。 VIDEOINFOHEADER *pVideoHeader = (VIDEOINFOHEADER*)amt.pbFormat; // ビデオ ヘッダーには、ビットマップ情報が含まれる。 // ビットマップ情報を BITMAPINFO 構造体にコピーする。 ZeroMemory( &BitmapInfo, sizeof(BitmapInfo) ); CopyMemory( &BitmapInfo.bmiHeader, &(pVideoHeader->bmiHeader), sizeof(BITMAPINFOHEADER)); // ---- キャプチャ開始 ---- pMC -> Run(); //バッファリングを有効にする pGrab->SetBufferSamples(TRUE); //ワンショットモードを無効にする pGrab->SetOneShot(FALSE); // 画像処理バッファ用メモリ確保 bufferTemp = (BYTE *)malloc(bufsize); return S_OK; }
- 664 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:38:56 ]
- (中略)部分は658リンク先のコードのコピペ。
- 665 名前:658 mailto:sage [2007/03/06(火) 17:41:24 ]
- ヘッダは以下。
#include <windows.h> #include <dshow.h> #include <qedit.h> // SampleGrabber用 #include <math.h> #include <malloc.h> static const GUID GUID_NULL = { 0x000000, 0x0000, 0x0000, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}}; #ifndef __ATLBASE_H__ #include <atlbase.h> #endif IGraphBuilder * pGraph = NULL; IMediaControl * pMC = NULL; ICaptureGraphBuilder2 * pCapture = NULL; ICreateDevEnum * pDevEnum = NULL; IEnumMoniker * pClassEnum = NULL; IBaseFilter *pbf = NULL; IMoniker * pMoniker = NULL; ULONG cFetched; IBaseFilter *pF = NULL; ISampleGrabber *pGrab = NULL; // これらは後で解放すること long bufsize = DEFAULT_VIDEO_WIDTH*DEFAULT_VIDEO_HEIGHT*3; //必要なバッファのサイズ BYTE *bufferTemp = NULL; AM_MEDIA_TYPE amt; HWND hwnd; BITMAPINFO BitmapInfo; HBITMAP hBitmap; (以下略)
- 666 名前:デフォルトの名無しさん [2007/03/06(火) 17:43:19 ]
- コンピュータ名の取得の仕方を教えてください
- 667 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:43:24 ]
- // ビットマップ情報の取得
pGrab -> GetConnectedMediaType( &amt ); // ビデオ ヘッダーへのポインタを獲得する。 VIDEOINFOHEADER *pVideoHeader = (VIDEOINFOHEADER*)amt.pbFormat; ちゃんと取れてるんだろうな。 エラーチェックぐらいは当然やってるよな?
- 668 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:43:59 ]
- >>666
ぐぐれ
- 669 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:46:00 ]
- >>667
いかんせんデバッグモードみたいなのがないのですよ。orz これがXtra開発の嫌なところで(ry >>658のサンプルをコンパイルして実行したら普通に動くのでたぶん取れてるはず。
- 670 名前:655 mailto:sage [2007/03/06(火) 17:46:59 ]
- >>656-657
まだ確認はとれていないのですが、やってみます。 ご回答ありがとうございます。
- 671 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:54:40 ]
- せめてASSERTくらい入れとけ
- 672 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 17:59:29 ]
- ちなみに>>663中略以降を
// ビットマップ情報の取得 pGrab -> GetConnectedMediaType( &amt ); // ビデオ ヘッダーへのポインタを獲得する。 VIDEOINFOHEADER *pVideoHeader = (VIDEOINFOHEADER*)amt.pbFormat; // ビデオ ヘッダーには、ビットマップ情報が含まれる。 // ビットマップ情報を BITMAPINFO 構造体にコピーする。 BITMAPINFO BitmapInfo; ZeroMemory( &BitmapInfo, sizeof(BitmapInfo) ); CopyMemory( &BitmapInfo.bmiHeader, &(pVideoHeader->bmiHeader), sizeof(BITMAPINFOHEADER)); てな感じにすると普通に動くます。 だけどこれじゃBITMAP情報取れないので意味がない。orz
- 673 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:10:50 ]
- >>672
違いがわからんぞ BITMAPINFO BitmapInfo; の場所だけか?
- 674 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:16:49 ]
- >>673
そうなのです。
- 675 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:17:22 ]
- Xtraって知らないけど663のCopy前で
BITMAPINFO tmp; if( tmp.bmiHeader.biSize != BitmapInfo.bmiHeader.biSize) MessageBox(0,"勘弁してよ",0,0); ってやったらどうなる?
- 676 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:20:27 ]
- グローバル変数なのかよ。
本来BitmapInfoは可変サイズだからそのまま宣言することは あまりないんだが、、まあヘッダだけ欲しいならいいのか・・・ まずは、BitmapInfoのアドレスと、sizeof(BitmapInfo)を出してみ
- 677 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:21:03 ]
- あ、だめだ675は忘れて
|

|