DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

アプリケーションが始まるときに呼び出す位置(エントリポイント)を変更する

ここでは、Windowsフォームアプリケーションにおいて、アプリケーションがはじめに開始される場所(エントリポイント)を変更する方法を紹介します。なおエントリポイントについて詳しくは、「アプリケーションのエントリポイントを自作する」をご覧ください。

Visual Studioを使った方法

VB.NET

まずはVB.NETでの説明です。VB.NETでエントリポイントに指定できるのは、フォームかSub Mainプロシージャです。

補足:正確には、エントリポイントはSub Mainのみです。以下の方法でスタートアップオブジェクトをフォームにすると、コンパイラが自動的にSub Mainを作成します。

アプリケーションが開始されるときにはじめに表示したいフォームを変えたり、Sub Mainプロシージャから開始したいときには次のようにしてエントリポイントを変更します。

  1. ソリューションエクスプローラでエントリポイントを変更したいプロジェクトを右クリックしてポップアップメニューを表示させ、「プロパティ」をクリックします。
  2. Visual Studio 2005以降では、「アプリケーション」タブにある「スタートアップフォーム」でエントリポイントを指定し、「OK」をクリックします。なお、Sub Mainプロシージャを指定するには、「アプリケーションフレームワークを有効にする」を無効する必要があります。「アプリケーションフレームワークを有効にする」を無効すると、「スタートアップフォーム」は「スタートアップオブジェクト」と名前を変えて、Sub Mainプロシージャを指定できるようになります。
    スタートアップオブジェクトの設定
    Visual Studio 2003以前では、(プロジェクト)プロパティページダイアログにおいて、「共有プロパティ-全般」の「スタートアップの設定」でエントリポイントを指定し、「OK」をクリックします。
    スタートアップの設定
補足:Visual Studio 2005以降では、「アプリケーションフレームワークを有効にする」を無効にしないと、本当のエントリポイントを変更することはできません。「アプリケーションフレームワークを有効にする」を有効にしたときのエントリポイントは、MyApplicationクラスのMainメソッドとなるようです。

C#

次にC#での説明です。VB.NETでエントリポイントに指定できるのは、静的なMainメソッドです。

プロジェクトに複数のクラスがあり、複数のクラスに静的なMainメソッドが定義されている時、アプリケーションの起動時に実行するメソッド(エントリポイント)を次のような方法で変更できます。

  1. ソリューションエクスプローラでエントリポイントを変更したいプロジェクトを右クリックしてポップアップメニューを表示させ、「プロパティ」をクリックします。
    プロジェクトのプロパティの選択
  2. Visual Studio 2005以降では、「アプリケーション」タブにある「スタートアップオブジェクト」でエントリポイントにしたいMainメソッドがあるクラスを指定します。
    スタートアップオブジェクトの変更
    Visual Studio 2003以前では、(プロジェクト)プロパティページダイアログにおいて、「共有プロパティ-全般」の「スタートアップオブジェクト」でエントリポイントにしたいMainメソッドがあるクラスを指定し、「OK」をクリックします。

コンパイラオプションを使った方法

vbc.exeまたはcsc.exeを使ってコンパイルする時は、コンパイラオプション"/main"を使ってエントリポイントとするMainメソッドの位置を指定します。

VB.NET
コードを隠すコードを選択
vbc t2.vb t3.vb /main:Test2
C#
コードを隠すコードを選択
csc t2.cs t3.cs /main:Test2
  • 履歴:
  • 2007/2/5 .NET Framework 2.0に関する記述を追加。
  • 2010/4/17 画像を追加。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。