• ベストアンサー

VC++におけるリンクについて。

VC++6.0でWIN32APIを使用したプログラミングを行っているのですが、ビルドさせるとリンク中に8割ぐらいの割合でよく固まってしまいます。ビルドの中止をクリックしてもなんの反応もなく、全く動かなくなるので毎回タスクマネージャでVC++を強制終了させています。なぜそんなことになるのでしょうか?さっぱりわかりません。 どなたか原因を教えてください、おねがいします。

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

OSはWindows95/98でしょうか? VC++がコンパイル・リンクするときには、メモリをかなり使うようで、 メモリ管理が甘い(と、私が思っている)その系統のOSで、実装メモリが 少ないと、結構固まります :-< 開発にがんがん使うのであれば、OS には WindowsNT/2000 を使うことを お勧めします。私も VC++4.2 の頃ですが、あまりの不安定さに Windows95 から WindowsNT4.0 にかえました。 「どうしても OS を変えることができないのだ」ということであれば、 ・実装メモリを増やす ・常駐しているプログラムを減らす といった手段はありますが、問題を解決できる保証はありません。

asamaken
質問者

補足

ご回答ありがとうございます。 僕の使っているコンピュータはワークステーションでOSはWindws2000です。メモリは1.3GBあるのですが、やはりハードの相性とかの問題になってくるのでしょうか?

その他の回答 (4)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.5

>リビルドをいつすればいいのですか? ということですが、ビルドを行う際に「ビルド」ではなく「リビルド」を選べばいいだけです。 ビルドと同じメニュー内にあると思いますが。

asamaken
質問者

お礼

わかりました。 ありがとうございます。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.4

そうか Windows2000 なんですね。実装メモリも十分だし。 haporun さんが言う通りサービスパックを当てるのは当然として、 あと思いつくところと言えば、もし、常駐タイプのウィルス監視 ソフトを使っているのであれば、開発中は、それを止めておく とか。 # そろそろ、VC6.0 に乗り換えようかと思っていたのですが、 # ちょっと心配になってきたなあ…

asamaken
質問者

補足

どうもです。 ちょっと危ないんですけど、ウイルス対策のソフトすら入っていません。 今いろいろとためしているのですが、研究室のほかのパソコン(OSも一緒)ではこういった不具合はまったくありません。今使っているワークステーションがやはり悪いのでしょうか? ワークステーションは、DELLのもので、スペックは Pentium(3)Xeon1GHz ×2個(デュアルCPU) RDRAM(PC800ECC) 256MB×4+128MB×2 といった贅沢な内容です。

  • haporun
  • ベストアンサー率40% (230/562)
回答No.3

win32apiなら、もしかしたら、それらのライブラリが壊れちゃっているかもしれませんね。 VCの修復セットアップをするか、もしくは、サービスパックが5まで出ているので、当ててみてはどうでしょう。 それにしても、メモリ1.3GBはびっくりです。

asamaken
質問者

補足

どうもです。 研究解析用なのでお金に糸目をつけていないのです。 一応セットアップし直してみたのですが、まったくもって直りません。 毎回タスクマネージャを呼び出すのにも疲れました(><)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

リビルドしてもダメですか?  インクリメンタルリンカが作成したステートファイルの内容が、何らかの原因でおかしくなってしまう場合があります。(特にVC++ではよくおきます。)  これはリビルドすれば直るので、一度試してみてください。

asamaken
質問者

補足

ご回答ありがとうございます。 リンク中の止まってしまってからはビルドの中止ボタンしか押せないようになっていて、それを押しても全く反応しません。 リビルドをいつすればいいのですか? いろいろ試してみたところ、ビルドし終わったあとにほんの少しだけコードを修正してまたすぐにビルドしなおすと、ほぼ90%の確率で固まってしまいます。 z