• ベストアンサー

【VC++6.0(MFC)】スタックメモリサイズの変更方法

いつも大変お世話になっております。 VC++初心者です。 スタックメモリサイズがデフォルトで1Mが設定されているようですが、 それを確認、及び、変更する方法を教えていただけませんでしょうか。 (具体的には、1.0Mから0.5Mにしたいです。) ちなみに、某サイトで 「プロジェクトのプロパティ→リンカ→システム→スタックのサイズの設定」 で変更可能であるとあったのですが、「プロジェクトのプロパティ」が何を指すのか分かりませんでした。 お手数ですが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jgk
  • ベストアンサー率75% (104/138)
回答No.1

それはおそらくVS2002以降の場合ですね。 VC++6.0では、プロジェクト(メニュー)→設定→リンク(タブ)→アウトプット(ドロップダウンリストボックス)→スタックアロケーション→予約がスタックサイズです。 Debug、Release個別に設定できますので注意してください。 リンカのデフォルト値が使われるので、1MBかどうかの確認はできません。 ですが、普通にVC++のリンカを使っていれば1MBです。 http://msdn.microsoft.com/ja-jp/library/8cxs58a6.aspx

yuki7091
質問者

お礼

たびたび、すみません。 ヒープサイズの変更も教えていただけませんでしょうか。

yuki7091
質問者

補足

早速のご回答、ありがとうございます。 確認できました。 教えて頂いたMSDNを見ますと、「スタックのサイズをバイト単位で 指定します」とありますから、私の場合、0.5Mにしたいので、 その「予約」欄に「500,000」を入力すればよいということでしょうか。

その他の回答 (2)

  • jgk
  • ベストアンサー率75% (104/138)
回答No.3

メモリの場合、1MB=1024 * 1024の場合がほとんどですので、 デフォルトの半分という意味なら、524288ですね。 もちろん、500000でもかまいません、 ヒープサイズはVC++6.0はGUI上にないみたいなので、プロジェクトオプションに直接書き込むか、 ソースコードにてプラグマで設定ですね。 #pragma comment(linker, "/HEAP:??????") http://msdn.microsoft.com/ja-jp/library/f90ybzkh.aspx

yuki7091
質問者

補足

ご回答、ありがとうございます。 >メモリの場合、1MB=1024 * 1024の場合がほとんどですので、 >デフォルトの半分という意味なら、524288ですね。 厳密に言えば、ご指摘頂いた数値が正しいそうですね。 また、設定方法をご教授して頂き、ありがとうございました。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

色々試すのは良い事ですが、何でも聞くのはプログラマーとしての成長の阻害にしかなりません。 1.まず試してみる。 2.検索して調べてみる。 3.1と2を繰り返しても分からなかったら質問する。 ぐらいの気持ちがないと教えて君になってしまいますよ。 「ヒープサイズ 変更 VC++」で検索すれば出てきますので、そのぐらい検索しましょう。

yuki7091
質問者

補足

ご回答、ありがとうございます。 ご指摘のとおり、もう少し調べてから質問させて頂きたいと思います。 MSDNで調べても、VC++6に対するVisual Studio 開発環境で設定する方法が 検索できなかったので、質問させていただきました。

関連するQ&A

  • VCでのスタックサイズ

    VC++2005のスタックサイズのデフォルトは知らないのですが プロパティ  構成プロパティ   C/C++    コマンドライン 追加のオプション /F 1000000000 953MBのスタックで約1Gのスタックはできるのでしょうか? また、実行ファイル(exeファイルから)スタック領域がわかる方法があるのでしょうか?

  • 最大スタックサイズを大きくすることの影響は?

    再帰呼び出しを行うプログラムでスタックオーバーフローが発生するようになりました。 そこで最大スタックサイズを変更しようと考えていますが 最大スタックサイズを大きくすることで何か影響があることはあるのでしょうか? 他アプリ等に影響が出ないかを懸念しています。 ※最大スタックサイズは最大で16Mらしく、現在は1Mです。  特に影響がないのであれば最初から16Mにしておけば良いような気もして疑問に思っています。

  • VC# 境界線のないウィンドウフレームのサイズ変更

    VC#を勉強しています。 質問内容ですが、ウィンドウフレームのプロパティの FormBorderStyle がありますよね。 これを、[none]に設定するとウィンドウフレームが消えます。 このフレームのサイズ変更をマウスを使って行いたいのですが、どうもやり方がわかりません。 境界線がないので、ステータスバーをウィンドウ下部へつけて、ステータスバーの右下のサイズ変更用の部分にマウスカーソルを当ててドラッグしてみても、サイズが変更されません。 何かいい方法があれば、教えて頂きたいです。 どうかよろしくお願いいたします。

  • 大きな配列を使うには?

    BCCにJavaからポーティングしましたが、配列 int array[max]で、150000程度の大きさを超えると、メモリ不足で止まってしまいます。BCCかリンカのオプションで、ヒープやスタックサイズを変更する具体的な方法、または、大きな配列を上手く使う方法を教えてください。(プログラムはこんな感じ。) #define max_array 140000 /* このサイズを変更したい */ void main() { char array[max_array] ; この後、ヒープも使うのですが、(そのメモリ確保も必要)そこまで 行かない。。。。 (MSのVC++2005でも、同様になりました。) 10数年ぶりにプログラムをしている初心者です。 よろしくお願いします。

  • VC++2008ExpressでProjectのPropertyをco

    VC++2008ExpressでProjectのPropertyをcopyする方法を教えてください。 ひとつのソリューションの下に、いくつかのプロジェクトを作っているのですが、既存のプロジェクトのプロパティ設定が新しく作ったプロジェクトにコピーされないため、プロジェクトを作るたびにプロパティ設定をやり直しています。設定したいのはリンカの追加の依存ファイル、C/C++の追加のインクルードディレクトリ、プロコンパイル済みヘッダの設定などです。 既存プロジェクトのプロパティを新規プロジェクトにコピーする方法がありましたら教えてください。よろしくお願いします。

  • デスクトップPCのメモリ変更

    お世話になります。 デスクトップPCを使っているのですが、どうも動きが遅いです。 システムのプロパティをみると下記の表示です。 Dell OPTIPLEX GX270 Celeron(R)CPU 2.40GHz 2.39GHz、512 MB RAM 仮想 システムのプロパティ>詳細設定>パフォーマンス>詳細設定>仮想メモリの変更で以下の表示になっています。 【選択したドライブのページングファイルサイズ】 空き領域 27279MB 初期サイズ(MB) :768 最大サイズ(MB) :1536 【すべてのドライブの総ページングファイルサイズ】 最小限:2MB 推奨:763MB 現在の割り当て:763MB メモリの割り当てを増やした方がいいと聞きましたが、どの程度 変更すればいいものでしょうか? はたまた本当に変更した方がいいのでしょうか? PC初心者なので、教えてください。 よろしくお願いします。

  • 仮想メモリの数値について(初期サイズ・最大サイズ)

    windowsXPを使っている者です。 仮想メモリの設定について伺います。 あるサイトに 「使用するアプリケーションに応じ、仮想メモリ領域は初期サイズと最大サイズの間で可変します。そのため断片化が起こりやすくなります。この二つのサイズを同一サイズとしておくと、仮想メモリ領域の断片化は起こりにくくなります。」 と書いてありました。 デフォルトでは初期サイズ2046、 最大ファイル4092となっているのですが、変更した方が良いのでしょうか?またそうだとしたらどのぐらいのサイズにすれば良いのでしょうか。 しかし、なぜデフォルトでは同じ数値になってないのだろうか・・

  • 「仮想メモリの最小値が低すぎます。」と出るので、カスタムサイズを変えてみたのですが。

    ウイルスソフトをノートンから、カスペルスキーに変えてから、「仮想メモリの最小値が低すぎます。」と頻繁に出るようになりました。 少し調べてみて以下のようにしたのですが、正しいでしょうか? 「「マイコンピュータ」を右クリックして「プロパティ」を選びます。「システムのプロパティ」が開くので「詳細設定」タブを選び「パフォーマンス」にある[設定]ボタンを押します。「パフォーマンス オプション」が開くので「詳細設定」タブを選び「仮想メモリ」にある[変更]ボタンに押すと、仮想メモリーの設定になります(上)。初期サイズと最大サイズの値を大きくすると、仮想メモリーの容量が増えます。」 というのを参考にしてカスタムサイズの初期サイズを478、最大サイズを956にしました。 478にしたのは下の(ページングファイルサイズ)の推奨のところが478だったからで、956は478の2倍にしただけです。 OSはXPで、RAMは320MBです。 私がした設定は正しいでしょうか?

  • VC++6.0 Stack Overflow !!

    私はVC++6.0で画像処理のプログラムを作っています。 再帰構造を用いたある関数を呼ぶと、対象の画像によって、スタックオーバーフローでプログラムが止まってしまいます。 これを避ける方法や、スタックのサイズの変更方法がありましたら教えてください。 なお、現在、VC++のメニューの「プロジェクト」→「設定」→「リンク」タブ→「アウトプット」カテゴリからスタックアロケーションの予約のところを適当な大きな数を入力しているのですが、効果はありません。

  • Win10 20H2の仮想メモリのサイズ

    C(OS&アプリ)→M.2SSD1TB。D(データ)M.2SSD1TBと2本のM.2SSDを使い分けています。32GBのメモリを搭載しているPCですが、それでも仮想メモリを使用するソフトウェアがあれば、仮想メモリを設定しておいた方が良いと言われて、Dにシステム管理サイズでお任せの仮想メモリを設定して4.8GB程度作成されているようです。システムドライブとは別のドライブに仮想メモリを設定した方が良い理由と、適切な仮想メモリのサイズとその理由も教えてください。

専門家に質問してみよう