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

わんくま同盟

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

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

■100106 / 9階層)  DLLがない場合のエラーメッセージ
□投稿者/ Azulean (1246回)-(2022/07/03(Sun) 16:47:26)
2022/07/03(Sun) 16:49:46 編集(投稿者)

No100103 (とり さん) に返信
> 仰る通り、別のメソッドにするとエラーなく実行できるようになりました。
> これって一体どういう理屈なのでしょうか?
> できれば、原因をお教えいただけないでしょうか?

.NET Framework は C# や VB.NET の言語をコンパイルして、MSIL という中間言語コードを生み出して、DLL/EXE ファイルに含めています。
中間言語コードは、実行時に JIT という仕組みで実行可能なコードに変換しています。
この JIT が動いたときに解釈される「範囲(メソッドとかクラスとか)」に存在する「型」を解釈するために、DLL の読み込みが行われますので、その段階で DLL が見つからないなら例外となります。

今回の場合、元のコードの Main に Form1 という型が出現するので、Form1 に関する情報の読み込みが進む中で、DLL が足りなかったということでしょう。
メソッドを分ければ、1 度の JIT のスコープから外れるかもしれませんが、この挙動は仕様として保証されているわけではないと思うので、いつでも成り立つとは限りません。

できる範囲で取り組むことは否定しませんが、恒久的に実現できる仕様として約束しない方が良いと思います。
解決済み
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[8]: DLLがない場合のエラーメッセージ /とり 返信無し
 
上記関連ツリー

DLLがない場合のエラーメッセージ / とり (22/07/02(Sat) 23:23) #100091
Re[1]: DLLがない場合のエラーメッセージ / KOZ (22/07/03(Sun) 01:22) #100092
  └ Re[2]: DLLがない場合のエラーメッセージ / 774RR (22/07/03(Sun) 05:30) #100093
    └ Re[3]: DLLがない場合のエラーメッセージ / KOZ (22/07/03(Sun) 07:02) #100094
      └ Re[4]: DLLがない場合のエラーメッセージ / とり (22/07/03(Sun) 10:42) #100095
        ├ Re[5]: DLLがない場合のエラーメッセージ / KOZ (22/07/03(Sun) 11:13) #100097
        └ Re[5]: DLLがない場合のエラーメッセージ / radian (22/07/03(Sun) 11:12) #100096
          └ Re[6]: DLLがない場合のエラーメッセージ / とり (22/07/03(Sun) 13:50) #100099
            ├ Re[7]: DLLがない場合のエラーメッセージ / radian (22/07/03(Sun) 14:25) #100100
            └ Re[7]: DLLがない場合のエラーメッセージ / KOZ (22/07/03(Sun) 14:29) #100101
              └ Re[8]: DLLがない場合のエラーメッセージ / とり (22/07/03(Sun) 14:38) #100103
                ├ Re[9]: DLLがない場合のエラーメッセージ / KOZ (22/07/03(Sun) 14:48) #100104
                │└ Re[10]: DLLがない場合のエラーメッセージ / とり (22/07/03(Sun) 15:01) #100105 解決済み
                └ DLLがない場合のエラーメッセージ / Azulean (22/07/03(Sun) 16:47) #100106 解決済み ←Now

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信