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


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

★初心者にVisual C++を教えるスレ★ Part25



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


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は忘れて

678 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:21:10 ]
>>675
「勘弁してよ!」って言われた!

・・・つまりどういうこと?(;´д`)

679 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:21:39 ]
>>675
初期化してないbiSizeに意味が?

680 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:25:18 ]
sizeof(BitmapInfo)を出そうとしたら落ちる・・・orz

681 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:26:42 ]
BitmapInfoって名前がよくないw
何かとぶつかってんじゃないのか

682 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:29:52 ]
MessageBox(0,(const char *)&BitmapInfo,0,0);
なんてのを加えたら空ダイアログが出たけどこれ壮大に間違ってますよねorz

683 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:34:05 ]
正直、全体的にツッコミどころ満載。

684 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:35:02 ]
そういうのは、
sprintf(str, "%X", &BitmapInfo);
とかやるもんだ



685 名前:658 mailto:sage [2007/03/06(火) 18:38:57 ]
>>684
stdioは使えないのですよ。
コンソールとか開きませんし。

686 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:41:41 ]
あ、使えるか。orz

687 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:43:51 ]
アドレス:1000E380
sizeof(BitmapInfo):44
と出ました。

688 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 18:55:13 ]
で、ZeroMemoryで落ちなくて
CopyMemoryで落ちるのか?

ローカルでBITMAPINFO を作ってそっからコピーしては。
とにかく、オオボケかましてる率98%だからな

689 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 19:07:42 ]
>>688
大ボケですか・・・orz

class Cam {
BITMAPINFO BInfo;

とか宣言して

// ビデオ ヘッダーには、ビットマップ情報が含まれる。
// ビットマップ情報を BITMAPINFO 構造体にコピーする。
BITMAPINFO BitmapInfo;
ZeroMemory( &BitmapInfo, sizeof(BitmapInfo) );
CopyMemory( &BitmapInfo.bmiHeader, &(pVideoHeader->bmiHeader), sizeof(BITMAPINFOHEADER));
BInfo = BitmapInfo;

なんてやっても落ちます。

690 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 19:14:01 ]
初心者スレだから言うけれど
落ちるにも色々あるんだ。

落ちた時のエラーメッセージを貼り付けるとよいかと

691 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 19:14:22 ]
BInfo = BitmapInfo;
で落ちるのか?
落ちるというのは、その行で落ちるのか?

BInfo.bmiHeader.bfType とか、各メンバにはアクセスできるのか?

692 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 19:19:25 ]
>>690
A fatal error has occurred. Director will quit now.
と出た後
Warning! Director is completely out of memory and
must exit immediately.
てなダイアログが出て終了しま。

693 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 19:20:18 ]
>>691
その行で落ちるので以降アクセスできるかどうかもわかりません。

694 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 19:25:58 ]
BITMAPINFO BitmapInfo;
ZeroMemory( &BitmapInfo, sizeof(BitmapInfo) );
char str[100];
sprintf(str, "%X", &BInfo);
MessageBox(0,str,0,0);
printf(str, "%d", BInfo.bmiHeader.biWidth);
MessageBox(0,str,0,0);
CopyMemory( &BitmapInfo.bmiHeader, &(pVideoHeader->bmiHeader), sizeof(BITMAPINFOHEADER));

てな感じだと普通に動きます。



695 名前:658 mailto:sage [2007/03/06(火) 20:32:33 ]
似たプログラムが手元にあるんですけどそっちは普通に動くんですよね・・・。orz

とりあえず、もうちょい一人であれこれ考えてみます。

696 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 00:09:09 ]
どっかでスタック壊してそうな
こっちで再現できるだけのコードが無いともうわからん






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

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

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