C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: デバッグができない


(過去ログ 18 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■7104 / inTopicNo.1)  デバッグができない
  
□投稿者/ どっとねっと (1回)-(2007/08/30(Thu) 12:11:15)

分類:[VB.NET/VB2005] 

初心者です。
よろしくお願いします。

OS:WindowsXP Home Edition
開発環境:Visual Studio2003 .Net

VB.NETでアプリケーションを開発しています。
ビルドの際に、Visual Studio上では問題なく終了するのですが、実際にdebugフォルダに生成されたEXEファイルを実行すると下記のようなエラーが発生してアプリが起動できません。

例外:’System.InitializationException’が ○○.exeで発生しました。

そして調べてみると、下記のメッセージを見つけました。

----------------------------------------------------------------------------------------------------------
'System.TypeInitializationException' のハンドルされていない例外が 不明なモジュールです。 で発生しました。

追加情報 : "○○.initialize" のタイプ初期化子が例外をスローしました。
----------------------------------------------------------------------------------------------------------

ちなみに、initializeクラスでは、フォームを持ち回り変数に格納する作業をしています。

Public Class initialize
Public Shared f1 As Form1 = New Form1

Shared Sub Main()
Dim f1 As Form1 = New Form1
Try
Application.Run(f1)
Catch
End Try
End Sub

End Class

情報に不備があるかとは思いますが、原因がお解かりになる方いらっしゃいましたらよろしくお願いします。
引用返信 編集キー/
■7114 / inTopicNo.2)  Re[1]: デバッグができない
□投稿者/ はつね (256回)-(2007/08/30(Thu) 12:57:17)
はつね さんの Web サイト
2007/08/30(Thu) 12:58:38 編集(投稿者)
No7104 (どっとねっと さん) に返信
> 開発環境:Visual Studio2003 .Net

Visual Studio.NET 2003ですね。

> ビルドの際に、Visual Studio上では問題なく終了するのですが、実際にdebugフォルダに生成されたEXEファイルを実行すると
> 下記のようなエラーが発生してアプリが起動できません。

ビルドが通るのと正しく動作するのは等価ではありません。
ビルドが問題なく終了する事はEXEファイルが正しい動くをする根拠にはなりません。
ビルドが問題なく終了したとしても記述したコードに誤りがあれば、誤りの通りにプログラムは動きます。

> Public Class initialize
>     Public Shared f1 As Form1 = New Form1
> 
>     Shared Sub Main()
>         Dim f1 As Form1 = New Form1
>         Try
>             Application.Run(f1)
>         Catch
>         End Try
>     End Sub
> End Class

なんか、f1という変数が2箇所で宣言されていますが意図したものなのですか?

##図表モードに変更</pre></pre>

引用返信 編集キー/
■7115 / inTopicNo.3)  Re[2]: デバッグができない
□投稿者/ どっとねっと (3回)-(2007/08/30(Thu) 13:04:21)
No7114 (はつね さん) に返信

早速の返信有難うございます!

> Visual Studio.NET 2003ですね。
…すいません、急いで書いたもので…(^^;)


> ビルドが通るのと正しく動作するのは等価ではありません。
> ビルドが問題なく終了する事はEXEファイルが正しい動くをする根拠にはなりません。
> ビルドが問題なく終了したとしても記述したコードに誤りがあれば、誤りの通りにプログラムは動きます。
なるほど。じゃあビルドでエラーが出なかったからと言ってリリースしていいってものではないんですねぇ。
勉強になります。


> なんか、f1という変数が2箇所で宣言されていますが意図したものなのですか?
すいません、掲載したコードが間違ってました。
Public Class initialize
Public Shared f1 As Form1 = New Form1

Shared Sub Main()
Try
Application.Run(f1)
Catch
End Try
End Sub
End Class

↑これが原因と思われるソースです。
また、initialize.vbにはこのクラスが一つあるだけとなっています。
原因がまだ皆目見当ついていません(><)
引用返信 編集キー/
■7116 / inTopicNo.4)  Re[3]: デバッグができない
□投稿者/ よねKEN (73回)-(2007/08/30(Thu) 13:12:46)
よねKEN さんの Web サイト
2007/08/30(Thu) 13:13:10 編集(投稿者)

> 追加情報 : "○○.initialize" のタイプ初期化子が例外をスローしました。

とありますので、問題箇所は、

> Public Shared f1 As Form1 = New Form1

たぶん、この部分だと思います。
Form1クラスのコンストラクタで問題が発生していませんか?
VisualStudio.NETのForm1クラスのコンストラクタの先頭にプレークポイントを
置いて、そこからステップ実行してどこで例外が発生しているか確認してみては。

引用返信 編集キー/
■7121 / inTopicNo.5)  Re[4]: デバッグができない
□投稿者/ どっとねっと (4回)-(2007/08/30(Thu) 13:40:14)
No7116 (よねKEN さん) に返信

返信有難うございます!
今調査中ですが、どうやら別のところでコンストラクタがおかしいようです。

Imports ○○.Initialize

を、あるソースの一番上に書いているのですが、ここが問題のような気がします。
というか、呼び出しはここだけなのでここが原因だと思います。

> VisualStudio.NETのForm1クラスのコンストラクタの先頭にプレークポイントを
> 置いて、そこからステップ実行してどこで例外が発生しているか確認してみては。
そうなんですよね、それができるとわかりやすいんですが…
Importsしてるソースのほとんどでそのコンストラクタを使用していて、ソースの大半をコメントアウトする事になってしまうんです…
面倒な質問かもしれませんが、どうしたらいいか教えていただけないでしょうか(><)
引用返信 編集キー/
■7133 / inTopicNo.6)  Re[5]: デバッグができない
□投稿者/ どっとねっと (5回)-(2007/08/30(Thu) 15:47:18)
とりあえずInitializeに関係する部分は全て消しましたが、新たなエラーが出るようになりました。

-------------------------------------------------------------------------------------------
'System.IO.FileNotFoundException' のハンドルされていない例外が POLGA.exe で発生しました。

追加情報 : ファイルまたはアセンブリ名 AxInterop.SHDocVw、またはその依存関係の 1 つが見つかりませんでした。

--------------------------------------------------------------------------------------------

ネットで調べてみると何かファイルが足りないっぽいのですが…

意味がまったくわかりません(><)
どなたか解る方がいらっしゃいましたらよろしくお願いします!
引用返信 編集キー/
■7143 / inTopicNo.7)  Re[6]: デバッグができない
□投稿者/ どっとねっと (6回)-(2007/08/30(Thu) 17:03:59)
すいません、自分で解決できました!

…DLLを一緒に置いておかないといけないんですね…
色んなサイトに載ってはいんたんですが…微妙に私と違う状況の対処法ばかりだったので関係ないって思い込んでました…

はつねさん、よねKENさん、有難うございました。
大変お騒がせしました…(勉強が足りないなぁ)
解決済み
引用返信 編集キー/
■7147 / inTopicNo.8)  Re[3]: デバッグができない
□投稿者/ はつね (257回)-(2007/08/30(Thu) 17:54:50)
はつね さんの Web サイト
解決したようでなによりです。
でも、ここだけは言わせて下さい。

No7115 (どっとねっと さん) に返信
>>ビルドが通るのと正しく動作するのは等価ではありません。
>>ビルドが問題なく終了する事はEXEファイルが正しい動くをする根拠にはなりません。
>>ビルドが問題なく終了したとしても記述したコードに誤りがあれば、誤りの通りにプログラムは動きます。
> なるほど。じゃあビルドでエラーが出なかったからと言ってリリースしていいってものではないんですねぇ。

当然です!
例えば、銀行のATMを作っていたとしましょう。口座にお金を振り込んだときに、振込先の口座の金額をプラスするところをマイナスにしていてもビルドは通ります。
では、ビルドが通ったからといってそのEXEファイルをリリースして良いと思いますか。
プログラムとは作成者が正しいと意図している通りに動くものではなく、作成者の間違えも含めて作成したとおりに動くものです。
意図との差がないかを確認するのがテストであり、差があった場合にその差を埋めるのがデバッグであり、ビルドエラーがなくなるという事はまさにテストの入口にやっと立ったということに他なりません。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -