CChildView.ccに変数を追加するには?


はんにゃ  URL  2011-03-07 17:53:52  No: 72426

WindowsXp VC6 MFCの環境です。
描画ソフトを作成しています
CChildView.ccの変数を追加するために
CChildView.hの
class CChildView : public CWnd
{
// Construction
public:
  CChildView();
// Attributes
public:
の  他の変数  
  int m_startSideFile[10];  // starting side and direction
  unsigned int m_edgeChain[10][232]; // [fude number][chain number Max232 ] chains=1850 KoMax4/32bits, MSB: start 32, LSB:last
  int m_numEdges[10][232]; // order[fude number][chain number Max232] of edges(useful Bits) of each m_edgeChain[10][232]
などの後に
//  int m_loopNum;  // loop(Wa) Number Max10:0-9, [m_loopNum], the first one m_loopNum = 0; 
を入れたのですが  うまく行きません。
入れるとコンパイルはするのですが、実行させると  一見問題ないのですが
ファイルを終了させると  音がします。これまでの経験で  音がするときは
メモリを読めませんのエラーが数値を初期設定
CChildView::CChildView()
{
他の変数の初期設定の

//  m_loopNum = 0;

させると
エラーがでます。なぜ  追加できないのでしょうか
これを解決するのはどうするのでしょうか?  

もうメモリーがいっぱいなのかな?まさか?


瀬戸っぷ  2011-03-07 18:01:31  No: 72427

そのクラスのインスタンスは…ローカル変数として作成されるのですかね?
# MFC使わないからよく判りませんが…

追加された…という下記の変数、総サイズで18600Byteになります。(sizeof(int)が4であれば)
>int m_startSideFile[10]; // starting side and direction
>unsigned int m_edgeChain[10][232]; // [fude number][chain number Max232 ] chains=1850 KoMax4/32bits, MSB: start 32, LSB:last
>int m_numEdges[10][232]; // order[fude number][chain number Max232] of edges(useful Bits) of each m_edgeChain[10][232]

ローカル変数でそのサイズだと…おそらくスタックオーバーフローするかと思われますが、その辺りは大丈夫ですか?


はんにゃ  URL  2011-03-07 20:37:30  No: 72428

その質問の内容を十分に理解していないのですが、
まず、直接コードの書き込みました。
VCのクラスviewのリストでメンバー変数の追加Windowでm_testを入れると、ChildView.h
の// Implementation
public:
  int m_test;
となります。それをビルドするとエラー音はでません。
すでにたくさんを入れてある
// Attributes
public:

と// Implementation
public:とは  どんな違いがあるのでしょうか?


はんにゃ  URL  2011-03-07 20:53:25  No: 72429

安心のためには
Static  変数にしておけばよろしいでしょうか?
Headerにいれておけば  Staticと同じと理解していたのですが
どこにあれ  staticとそうでないのは区別があるのですね。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加