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 。
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 ] どっかでスタック壊してそうな こっちで再現できるだけのコードが無いともうわからん
697 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:12:52 ] SendInput、INPUT構造体、KEYBDINPUT構造体を使おうとしたのですが ビルドかけると「定義されてません」とコンパイラに怒られます windows.hはstdafx.h内でインクルードしてあり、stdafx.hもちゃんとインクルードしてます _WIN32_WINNTの値も問題なく、#ifディレクティブの条件にも合ってます 特に定義がスキップされる要素は無いのになぜ定義されてないと出るのかサッパリわかりません・・・ 何か、原因とか手がかりとかわかる方いらっしゃいませんか
698 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 10:39:38 ] NOUSER定義してました、とかなら殴る。 問題無いと言っている_WIN32_WINNTの値は、具体的には何だ? stdafx.hをupした方が早いかもしれんな。 あと、とりあえずVCのバージョンは書いとけ。
699 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 10:56:52 ] _WIN32_WINNTだけではなくWINVERも指定しておけよ。
700 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 11:28:21 ] バージョンはVC++7.0です _WIN32_WINNTは0x0500となってました (winuser.hのSendInput周辺を囲ってる#ifは_WIN32_WINNT > 0x0400でした) WINVERの方は覚えてないです・・・
701 名前:デフォルトの名無しさん [2007/03/07(水) 17:59:19 ] 質問があります。 VS.NET 2003 VC++ の環境で、 フォームにラベルを配置し、ラベルのMouseMoveイベントに以下のコードを書きました。 // ボタン押下しっぱなしであれば移動 if(e->Button == MouseButtons::Left) { label_sp->Location.X = e->X; label_sp->Location.Y = e->Y; label_sp->Invalidate(); } 私は、このラベルをマウスでドラッグできることを予測して このコードを書きました。 ところが、ラベルはぴくりとも動いてくれません。 なぜなのでしょうか?
702 名前:701 mailto:sage [2007/03/07(水) 18:48:08 ] 自己解決しました…。 以下に解決に至ったコードを書きます。 // ボタン押下していれば移動 if(e->Button == MouseButtons::Left) { int X = Form1::MousePosition.X - Form1::Location.X int Y = Form1::MousePosition.Y - Form1::Location.Y label_sp->Location = Point(X, Y); } 多少ズレはありますがこのようにやってみます。 スレ汚しすみません。
703 名前:デフォルトの名無しさん [2007/03/07(水) 18:56:45 ] localtime関数はマルチスレッドで使う場合 スレッドセーフではないと聞きました VC++2002ですが解決策を教えてください
704 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:01:54 ] >>703 マルチスレッドは良くない。
705 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:02:36 ] マルチかよ
706 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:03:16 ] >>702 label_sp->Location = Point(X, Y); // ここ重要 Location.Xは、返された一時オブジェクトに対しての操作なので、 ラベルには反映されなかった。
707 名前:702 mailto:sage [2007/03/07(水) 19:27:56 ] >>706 あ、いえ、あれで実際動いてますよ? ラベルのドラックができてます。 まだ、マウスカーソルのサイズ分のズレがありますが、それは調整中です。 回答ありがとうございます。
708 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:31:11 ] >>703 スレッドセーフでないものをスレッドセーフにするには、 ラップすれば良いと何かの本で… 私ごときでは具体例は出せませんが
709 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:52:02 ] >>703 VC++2002がどんな設定だったか覚えていないが 設定でマルチスレッド対応のランタイムライブラリを選べばOK。 (推測) それとスレッドの作成に Win32APIのCreateThreadではなく C言語用かMFC用のを使えばいいんじゃない。
710 名前:706 mailto:sage [2007/03/07(水) 20:04:20 ] >>707 >>701 が動かない理由な。判りにくくてすまそ。
711 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 20:07:53 ] >>703 マルチってほんとに便利ですね。いらないスレッドはポイですよ。 【初心者歓迎】C/C++室 Ver.35【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1171888583/331
712 名前:デフォルトの名無しさん [2007/03/08(木) 10:59:55 ] 質問に合うスレッドに書き換えただけですがなにか?
713 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 11:17:00 ] そもそも、何でスレッドセーフではないのか? を考えたことあるか?
714 名前:デフォルトの名無しさん [2007/03/08(木) 11:58:24 ] 内部の静的な領域を使い回しするからですよね
715 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 13:16:21 ] 「〜ですけど、何か?」ってすっかり一般的になってるなw もともとこの言い回し、WhiteAlbumってゲームに出てきたジャーマネの口癖を パクッたやつだって知ってるヤツはあまりいまい…
716 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 13:35:25 ] 数年前にはやった
717 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 14:00:28 ] 6年来の葉鍵板住人だけど初耳だった
718 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 18:04:21 ] >>717 だったら「〜ですが何か?PART.XX」ってスレ、何度も目撃してるはずだが… たしか名前は弥生さんだった スレ違いスマソ
719 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 19:49:01 ] C++で委譲しまくってたら処理を振り分ける部分が恐ろしく複雑で忙しそうになってしまった 最初のうちは入門書に載ってるみたいに色んな機能を併せ持った奴作っていくようにした方がいいんでしょうか?
720 名前:デフォルトの名無しさん [2007/03/08(木) 22:56:09 ] 教えてください。 VC .NET 2003 でMFCを使ってプログラムを使うと、他の2003、2000の 環境で「MFC70.DLLがない」というエラーで実行できませんでした。 DLLを入れれば動くのは分かりますが、VCのコンパイルオプションなどで 通常の2000などの環境でも動くように出来ないのでしょうか? 「プロパティ-全般-MFCの使用」でスタティックにすれば実行できましたが、 スタティックにしたために実行ファイルのサイズが大きくなり格好が悪いです。 もっとスマートな方法はないでしょうか?
721 名前:720 mailto:sage [2007/03/08(木) 22:56:50 ] > VC .NET 2003 でMFCを使ってプログラムを使うと VC .NET 2003 でMFCを使ってプログラムを作ると の間違いでした。
722 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 23:16:42 ] 寝言?
723 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 23:56:13 ] 実行ファイルが数MBあったところで、ガタガタ抜かす奴は今時いないから気にするな。
724 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:00:24 ] >>720 EXEにMFC70.DLLを同梱 スタティックリンク MFCを使わない さあどれでも好きなものを選べ。
725 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:04:10 ] ネットで配布されてるフリーのライブラリを複数併用してると 実行ファイルが凄いことになるよな 併用できるように(試行錯誤で)改造することは出来ても不要なコンポーネントを削ることまでは出来ないから 結局10MbytesのExeとかになっちゃう そんなのでも一から自分で組むよりはパフォーマンスが良いって言うのが悲しいというか情けないところなんだけど・・・orz
726 名前:720 mailto:sage [2007/03/09(金) 00:04:15 ] .NETでMFCを使う以上、仕方がないということですね。 ありがとうございました。
727 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:19:34 ] >>725 ならんよ。デバッグのままなんじゃないのか
728 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 14:54:28 ] 10Mのexeはすごいなぁw どんだけ超大作なんだろうか
729 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 15:35:37 ] 10MBの実行コードってソースコードにしてどのぐらいだろうね きっと、いろんな人のコードがいっぱい詰まってるんだね
730 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 19:57:12 ] Perlのコードがそのまリテラルとして入ってるんだろ。
731 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 12:51:17 ] 要らん.lib削ったら5分の1になりますた ライブラリの機能実験のため一杯詰め込んでたの忘れてましたすいません><
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にしてみても変わらないです。。。