DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridViewを配置しているだけで実行時にエラーとなる

環境/言語:[OS : Windows XP / 言語 : Visual Basic .NET / .NET Framework : 4]
分類:[.NET]

【解決したい問題】

Microsoft Visual Basic 2010 Expressを使用しているのですが
フォームにDataGridViewを配置していると
何の処理もない状態でも実行直後にエラーが発生します。
解消方法についてご存知のかたがいらっしゃいましたらお教えください。

※新規プロジェクト作成でフォームを作成し
 フォームにDataGridViewだけを配置
 (プロパティ等一切変更しない、コードも書いていない状態)
 そして実行。これでもエラーが発生

エラーの内容:
AccessViolationExeceptionはハンドルされませんでした。

保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。

【解決するために何をしたか】

・webで検索してみましたが同様の症状は発見できず
・Microsoft Visual Basic 2010 Expressの再インストールを試しましたが変わらず
・コンパイルオプションでターゲットの.NET Framework を3.5、2.0等に変更しても変わらず

【追加事項】

テキストボックスやコマンドボタン等の
コントロールではエラーとなりません。
■No32842に返信(腰痛太郎さんの記事)
> ※新規プロジェクト作成でフォームを作成し
>  フォームにDataGridViewだけを配置
>  (プロパティ等一切変更しない、コードも書いていない状態)
>  そして実行。これでもエラーが発生
>
> エラーの内容:
> AccessViolationExeceptionはハンドルされませんでした。

環境固有の問題の可能性があります。
試しにデバッグ開始(実行)ではなく、bin\Debug フォルダーにできている exe をエクスプローラーから直接実行しても同様に例外が発生するのでしょうか?

DLL の何かが壊れている、常駐しているアプリケーションが何か悪さしている、常駐しているサービスが何か悪さをしているあたりを疑うことになりますが、ピンポイントにこれが悪いと示すのは難しいかとみています。
(ウィルス対策ソフト、セキュリティ系の監視ソフトを含む)
■No32843に返信(Azuleanさんの記事)
>
> 環境固有の問題の可能性があります。
> 試しにデバッグ開始(実行)ではなく、bin\Debug フォルダーにできている exe をエクスプローラーから直接実行しても同様に例外が発生するのでしょうか?
>
> DLL の何かが壊れている、常駐しているアプリケーションが何か悪さしている、常駐しているサービスが何か悪さをしているあたりを疑うことになりますが、ピンポイントにこれが悪いと示すのは難しいかとみています。
> (ウィルス対策ソフト、セキュリティ系の監視ソフトを含む)

返信ありがとうございます。

exe直接実行の場合は例外は発生せず実行できました。

しかし、Microsoft Visual Basic 2010 Expressを起動し
DataGridViewをフォームに配置した状態で(実行はさせない)
exeを直起動すると同じ例外エラーが発生します。

また、ウィルス対策ソフトをアンインストール、
タスクバーに表示されている常駐プログラムを終了させるなどしてみましたが
解消されませんでした。
そのほか、必要ないソフトもアンインストールしてみましたが効果なしでした。

すべて消すわけにはいかないので
別途マシンを用意するしかないかもしれませんね・・・
■No32844に返信(腰痛太郎さんの記事)
> exe直接実行の場合は例外は発生せず実行できました。
>
> しかし、Microsoft Visual Basic 2010 Expressを起動し
> DataGridViewをフォームに配置した状態で(実行はさせない)
> exeを直起動すると同じ例外エラーが発生します。

これはまた難しい現象の出方していますね…。
関連性のない、別プロセス(Visual Basic)を立ち上げているかどうかで、例外が出る・出ないが変わるとなると、ますます Visual Basic というよりは、何らかのドライバ−・サービス類の疑いが濃くなります。

この手の開発環境で悪影響を与えるものとして一時期話題に挙がっていたのは、電子書籍ビューアが入っているかどうかでした。
プリインストールされていることもあるそうなので、DRM(著作権保護)がかかりそうな不要なアプリがないかも一度見ていただいた方が良いかもしれません。
■No32845に返信(Azuleanさんの記事)
>
> これはまた難しい現象の出方していますね…。
> 関連性のない、別プロセス(Visual Basic)を立ち上げているかどうかで、例外が出る・出ないが変わるとなると、ますます Visual Basic というよりは、何らかのドライバ−・サービス類の疑いが濃くなります。
>
> この手の開発環境で悪影響を与えるものとして一時期話題に挙がっていたのは、電子書籍ビューアが入っているかどうかでした。
> プリインストールされていることもあるそうなので、DRM(著作権保護)がかかりそうな不要なアプリがないかも一度見ていただいた方が良いかもしれません。

本当に参りました。
DRM(著作権保護)に関係ありそうなのは、メディアプレーヤーぐらいで他にはないです。

ためしにセーフモードで起動して試したところエラーが出ませんでした。
しかし、システム構成ユーティリティで診断スタートアップ(基本的なデバイスとサービスのみ読み込みます)を選択し起動しましたが、エラーが発生しました。

Azuleanさんのご推察どおり、デバイスかサービスの何かが影響していそうですが
診断スタートアップでもエラーになるため、原因を突き止めるのは難しそうです。
何とか解決しました。

例外エラーの詳細のStack Traceをみたところ
SYSTEM.DRAWING・・・・・の項目があり
グラフィックドライバーを疑ってみました。

画面のプロパティの詳細のトラブルシューティングで
ハードウェアアクセラレータをなしにして

試したところエラーが発生しなくなりました!!

ドライバはAMDからダウンロードした最新のドライバにしていましたが
マザボメーカーサイトにある、古いドライバを入れなおしてみました。

その結果、ハードウェアアクセラレータ最大に設定しても
エラーが発生しなくなりました。

とりあえずこれで使用しようと思います。

Azuleanさん アドバイスありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板