Vivi0726 の回答履歴
- プログラミング初心者です。お知恵を貸してください。
閲覧ありがとうございます。 最近プログラミングを学び始めたのですが以下の処理がうまくいかず悩んでいます。 if (画像の現在位置X + 40 < タッチした位置の座標X, 画像の現在位置X - 40 > タッチした位置の座標X, 画像の現在位置Y + 40 < タッチした位置の座標Y , 画像の現在位置Y - 40 > タッチした位置の座標Y){ touch = true; } 画像の真ん中(添付した画像の水色の枠内)にポインタを置くとtouchがtrueになるようにしたいのですが真ん中以外にポインタを置いてもtouchがtrueになってしまいます。 数学も苦手で不等号の向きが間違っているのかなんなのか解りません。お知恵を貸してください。
- 締切済み
- xxnamekoixx
- C・C++・C#
- 回答数5
- BITMAPFILEHEADER bfSize
DIBからBMPファイルを作成する処理の一部です。 int nImageSize = pDIB->biSizeImage + (sizeof(RGBQUAD)*dwPaletteSize)+sizeof(BITMAPINFOHEADER); BITMAPFILEHEADER bmpFIH = {0}; bmpFIH.bfType = ( (WORD) ('M' << 8) | 'B'); bmpFIH.bfSize = nImageSize + sizeof(BITMAPFILEHEADER); bmpFIH.bfOffBits = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+(sizeof(RGBQUAD)*dwPaletteSize); fwrite(&bmpFIH, 1, sizeof(BITMAPFILEHEADER), pFile); fwrite(pDIB, 1, nImageSize, pFile); fclose(pFile); pFile = 0; BMPファイルは作成されますが、メモリリークします。 bmpFIH.bfSize を 0 またはそれに近い小さな数字にすると、メモリリークは検出されません。 bmpFIH.bfSize はファイルサイズのようですが、これが入っていないと問題でしょうか? また入れるとすればどのような数字を入れるべきでしょうか?(メモリリークの原因も含めて) 宜しくお願いします。 開発環境:VC++ 2008 MFC
- ベストアンサー
- nevertheless
- C・C++・C#
- 回答数3
- タスクバーとデスクトップアイコンが表示されない
nec製のノートパソコン、OSはwindows xp professional sp3です。 電源を入れると壁紙だけ表示されてタスクバーとデスクトップアイコンが表示されないという現象が毎回ではありませんが起こるようになってしまいました。詳しい方、解決方法を教えてください。
- ベストアンサー
- noname#195638
- Windows XP
- 回答数6
- sprintfを用いたフォーマット文字列攻撃
sprintfを用いたフォーマット文字列攻撃に関する質問です。 main文の中で --------------------- int main(void){ char str[50]; sprintf(str,"%s"); puts(str); } --------------------- を実行すると(null)で帰ってきます。 しかし関数呼び出しを行うと結果が変わってきます。 --------------------- void f(){ char str[50]; sprintf(str,"%s"); puts(str); } int main(void){ f(); } --------------------- これを実行すると" ・L "のような文字化けしたものに変わりました。 sprintf(str,"%s%s");と記述することによって" ・L (null) "と、本来呼び出される箇所のものが格納されています。 なぜ関数呼び出しにすると変なところを参照してしまうのか(第3引数があると勘違いしてしまうのか)教えてください。 また、これによりどのような悪影響があるのか教えてください。 自分はプログラマが意図しない箇所を参照するため攻撃者のプログラムアドレスを格納してしまう恐れがあると考えています。
- BITMAPFILEHEADER bfSize
DIBからBMPファイルを作成する処理の一部です。 int nImageSize = pDIB->biSizeImage + (sizeof(RGBQUAD)*dwPaletteSize)+sizeof(BITMAPINFOHEADER); BITMAPFILEHEADER bmpFIH = {0}; bmpFIH.bfType = ( (WORD) ('M' << 8) | 'B'); bmpFIH.bfSize = nImageSize + sizeof(BITMAPFILEHEADER); bmpFIH.bfOffBits = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+(sizeof(RGBQUAD)*dwPaletteSize); fwrite(&bmpFIH, 1, sizeof(BITMAPFILEHEADER), pFile); fwrite(pDIB, 1, nImageSize, pFile); fclose(pFile); pFile = 0; BMPファイルは作成されますが、メモリリークします。 bmpFIH.bfSize を 0 またはそれに近い小さな数字にすると、メモリリークは検出されません。 bmpFIH.bfSize はファイルサイズのようですが、これが入っていないと問題でしょうか? また入れるとすればどのような数字を入れるべきでしょうか?(メモリリークの原因も含めて) 宜しくお願いします。 開発環境:VC++ 2008 MFC
- ベストアンサー
- nevertheless
- C・C++・C#
- 回答数3