こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Visual Studio のコンパイラがアプリケーションエラー

Visual Studio 2005 Professional Edition(Visual Basic 2005)を使っています。
プログラム作成中にコンパイラ(エラー一覧に、文法エラー等を表示するやつです)がアプリケーションエラーで当然のように頻繁に落ちます。
※エラー内容「問題が発生したため、Microsoft Visual Basic Compilerを終了します。ご不便をおかけ・・・」「・・Visual Basicコンパイラを回復できません。システムエラー・・・」

コンパイラが落ちないように、
この自動コンパイル(自動コードチェック)をしないようにVisual Studioを設定する方法をご存知の方、教えて頂けませんでしょうか。
※いろいろ調べてみたのですがわかりませんでした。

投稿日時 - 2007-06-03 00:28:44

QNo.3052097

困ってます

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

んー、現象をこちらで確認してないのでわからない。
(俺の環境に入っているのOrcas Express Edition Betaなんで違うかもしれないが、俺の環境では[Tools]メニューの[Options]
念のためにShow all settingsにチェックを入れて
その設定のText Editorから
All LanguageとBasicのGeneralのAuto list members とParameter Informationのチェックを外してみるけど?)

で、
どっちかっていうと気になるのはこれかな・・・
http://support.microsoft.com/kb/927511
VS 2005にSP1は当たっているだろうか?

その他、ひょっとしたら、この辺とか
http://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=3705
この辺に
http://connect.microsoft.com/VisualStudio/feedback
それっぽいのがあるかもよ?

投稿日時 - 2007-06-04 22:39:45

お礼

情報ありがとうございます。
VS2005にSP1は当てていますがおきてしまっています。
hotfixの方にかなり近い記述があり、あてたいのですが、
「Warning!」と怖い事を書いているので、今の業務では難しいのでできそうにないです。
大分、見えました。情報ありがとうございました。

投稿日時 - 2007-06-13 22:40:47

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(11)

ANo.11

続きだ(投稿NO5から順番にみて下さい)
仮にだ、開発している1本のソースが1000行あったとする。
VBはカーソルが行を移動する度にソースのチェックをするのだ。
もし仮にソースに1個もエラーがないと、VBは、最終行までチェックをしようとする。
でもだな、先頭行からいきなり120行エラーが続くので102行目で
ソースの解析を打ち切ってしまうのです。
1000行チェックするより102行ソースを解析チェックするのが
当然早くチェック処理が終わるのです。
エラー内容でなく、チェックするソースの長さ・複雑さによるのです。

複雑さは、先頭行におくエラー文の内容を簡単なものにする事によってIDEのソース解析の負荷をかえって抑える事が出来るのです。
通常のソースだと、関数、値の参照が多いので、参照が多いほど解析チェックが複雑になりCPUの負荷が多くなります。
故にエラーが全くなくても、解析に負荷がかかるのです。
エラーチェックの負荷の少ない文の行をわざと先頭に沢山置くことによって、IDEにソース解析の負荷を抑えるのと、ソース事態の行数をごまかす様(102行で強制打ち切り)にしているのです。

投稿日時 - 2007-08-05 02:53:55

ANo.10

続きだ
尚、先頭行にエラー行を120行挿入する事によって、実際はエラーのチェックをしていなのではなく、VBは行を移動する度に、ソースの全文を絶えずチェックをしてるが、先頭行からいきなりエラーになり120行程エラーが続くので、そこで、ソースのチェックを打ち切ってしまうのです。それなら、120行エラーが出ているからかえってCPUに負荷が掛っているのではとおもうだろう。でも実際はちがうのだ。かえって負荷が少なくてすむのです。

文字制限で次の投稿で

投稿日時 - 2007-08-05 02:31:29

ANo.9

続きだ。(回答のNO4から順番に見て下さい)

わざと先頭の120行位い挿入すれば、後はそのソース内で自由に入力出来るのです。
その代わり、構文チェックは一切しないみたい。入力ミスには気をつけて下さい。
ソースが8割から9割出来上がった時点で、先頭行のエラー文を削除すればよいのです。
この削除も、単に範囲指定して消してもよいし、また、キーボードマクロで一発で消しても
よいと思う。消した途端に、自動構文が有効になってチェックを直ぐに掛けてくれます。
後はエラーになっている所を直せばいいのです。
各自先頭のエラー行の挿入・削除はやり易い方法を探して下さい。
私はこの方法で乗り切っています。他に良い方法があれば教えて下さい。

ただこの方法でも、フォーム画面を操作している時は別で、ファームのコントロールの
プロパティ操作とかは従来の同じで遅いのです。これは、自動構文チェックとは、別の
チェックロジックが走るみたいです。

投稿日時 - 2007-08-04 20:16:28

ANo.8

続きだ。

まずVBのソースの先頭行(先頭でないと駄目だ。)わざとエラーの出る
行を簡単に挿入すればよいのだ。構文エラーを複雑なのでは駄目なので
簡単で直ぐにエラーの出る内容でないと駄目です。

例えば、先頭行に

>    dim cx as integer
>    dim cx as integer
>    dim cx as integer
>    dim cx as integer
>    dim cx as integer

と120行入れると、2行目からかならずエラーになって、102行目からエラーチェックが
走らないのです。

後は挿入方法だ。でもこれはプログラマーには簡単だよ。色んな手立てがとれる。
簡単な方法だと、上の120行の内容をテキストファイルに保存しておいて、
コピー&ペーストで貼りつけるのもよし。VBのマクロで作成するのもよし。
キーボードマクロソフトでワンタッチで挿入する事もできるだろう。

文字数制限により、次の投稿文で。

投稿日時 - 2007-08-04 20:14:08

ANo.7

ソース入力画面の先頭行で、わざとエラーのでる行を入力する。
そうすると、メニューの「表示」の「エラー一覧」の画面に当然
エラーが直ぐに表示されるだろう。当然自動構文チェックが走るからだ。
この機能がある為にブラインドタッチが出来ないのだ。
しかしここで諦めたら駄目なんだ。更に進むのだ。前に前にと。
どうすれば?。簡単だ。わざとエラーの出る行をもっと増やすのだ。
どんどんどんどん入力するのだ。そうするとだな。あれ変だぞ。
エラーが出過ぎると、自動構文チェックの機能が止まっているでは
ないか?。VBでは、どうも102以上(私のマシンでは)の致命
エラーがでると、それ以後、エラーチェックしないと画面に出ている
ではないか?。メニューの「表示」の「エラー一覧」の最終行に
その様に表示されます。それ以後如何なる内容を入力すれど、キー
が突然サクサク動くのだ。これを発見した時から、私は直ぐにピンときた。
これを利用出来ないかだ。

文字数制限により、次の投稿文で。

投稿日時 - 2007-08-04 20:12:49

ANo.6

解決策(1)

ビルゲイツの所に行って「こら、いい加減にせよ。まともに動く
ソフトを作れ」と文句を言う。

解決策(2)

実は、これが必殺技だ。超裏技だ。私はこれを愛用している。
コード入力画面でサクサクと動くではないか。ブラインドタッチ
もできるぞ!!!。ただ、構文チェックを全くしないので、
素人には向かないが。コンパイル時には、問題なくチェックして
くれる。またある程度ソースが完成した時点で、構文チェックを
有効にすれば、それ以後自動的に構文チェックをしてくれるのだ。
でも、自動構文チェックの有効・無効の設定なんかは勿論そんな
ものはない。どこ探してもない。
ないのならばごり押しに(超ムチャクチャ)にその様な状態を作れば
いのです。

文字数制限により、次の投稿文で。

投稿日時 - 2007-08-04 20:11:15

ANo.5

確かに自動コードチェックは有難迷惑ですね。
努力する方向が違うと言われればそれまでだね。
大きな業務用のプログラム(1プロジェクトで5百本とか)を
作成していると、この自動コードチェックは大変煩わしいです。
ブラインドタッチでキーを入力するどころではない。カニパンチ
のキー入力スピードでもキー入力が追いついてない。
マイクロソフトよ。いい加減にせんかい。まともにサクサク動く
ソフトを作ってほしいものだね。
さて本題に移ろう。この解決策には、2通りある。

文字数制限により、次の投稿文で。

投稿日時 - 2007-08-04 20:09:23

ANo.4

No.2です。横槍っぽいですが、情報ありがとうございます。
私の環境はVS2005 Proで、SP1は当てているのですが、HotFixは
(Microsoft Updateで勝手に入れられたものを除いて)当てていませんでした。
確かに
http://support.microsoft.com/kb/927511
を見ると、当たりっぽい内容がありますね。
SP1を適用していれば、.NET Framework関連のHotFixだけ当てればいいらしいという事はわかったんですが、
https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=3705&wa=wsignin1.0
を見ても数が多くて訳わかんないですね…(汗)
会社の環境なので下手な事をするわけにもいかないので、もうちょっと調べてみます。
何はともあれ情報感謝です。

投稿日時 - 2007-06-07 17:12:08

お礼

ありがとうございます。
確かにあたりっぽい内容(エラーメッセージではほぼ同じ)がありますね。
http://support.microsoft.com/kb/927511/
すると、hotfixは
http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=4867
のようですが、残念ながら業務上今回は無理そうです。
※巨大なVBプロジェクトの為、
http://support.microsoft.com/kb/917452/
も該当していました。

情報ありがとうございました。

投稿日時 - 2007-06-13 22:51:40

ANo.2

回答にはなりませんが、私の環境でも時々落ちます。
会社のマシンなので、別に環境が変ってほどの事は無いと思うんですけどね。
IntelliSenseの反応が遅いときに別のアクションを起こすと落ちることが
比較的多いような気がするので、ゆっくり操作するしか…ないんでしょうかね?
実は私もIntelliSenseを動的に切ったりアクティブにしたりしたいなぁとは
思ってるんですけど…一応、落ちてもソースのセーブは出来るんで
今のところは諦めてます。

投稿日時 - 2007-06-04 09:20:54

お礼

環境によって頻度が変わるんですね。
ご回答ありがとうございます。

投稿日時 - 2007-06-13 22:29:44

ANo.1

>この自動コンパイル(自動コードチェック)をしないようにVisual Studioを設定する
努力する方向性が違う。

コンパイルエラーになっても、Visual Studio が落ちないようにするしか。
といってもランタイムライブラリなども含めて再インストールする位しか思い付きませんが。

投稿日時 - 2007-06-03 00:31:39

あなたにオススメの質問