GO BACK

C# (with C#Builder) 教室 そのX1


「開発ソフトを使わないC#プログラミング」


■C#のコンパイラについて

 ここではC#Builderを使って説明をしていますが、「C#Builderを使いたくない」とか、あるいは「突然、BorlandがC#Builderの無償配布をやめてしまった」というようなこともあるかも知れません。そこで、「商品開発ソフトに頼らないC#プログラミング」について簡単にまとめておきます。

 C#のプログラミングは、実を言えば.NET環境とC#のコンパイラさえあればできるのです。そして、これらは既にあります。「.NET Framework」と「.NET Framework SDK」です。両者はMicrosoftより配付されており、誰でも入手可能です。またC#Builderを使っているなら、Personal版をインストールする際にこれらのものを合わせてインストールしたことも覚えているでしょう。

 これらをインストールすると、.NETのフレームワークの他に、開発のための基本的なプログラムやドキュメントもインストールされます。これらは非常にたくさんのファイルからなるのですが、とりあえずコンパイラさえ使えれば、C#のソースコードからアプリケーションをビルドすることは可能でしょう。これは、通常は「C:¥WINDOWS¥Microsoft.NET¥Framework」フォルダ内にまとめられています。ここにはバージョンごとにフォルダが作成され、その中の「csc.exe」というプログラムがC#コンパイラとなります。 例えば、筆者の環境ではver. 1.1.4322というものがインストールされていますが、これは「C:¥WINDOWS¥Microsoft.NET¥Framework¥v1.1.4322」というフォルダの中に「csc.exe」がおさめられています。


■コンパイラの利用法

 では、このcsc.exeコンパイラを使ってC#のプログラムをコンパイルしてみましょう。まず、コマンドラインからこのプログラムが簡単に利用できるよう、csc.exeがあるディレクトリにパスを通しておきます。環境変数のPathにこのディレクトリを追加すればよいわけです。

 Windows XPの場合は、システム・コントロールパネルの「詳細設定」タブにある「環境変数」ボタンをクリックし、現れたダイアログから「Path」を選択して「編集」ボタンを押し、現れたPath変数の値の末尾にセミコロンで区切って「C:¥WINDOWS¥Microsoft.NET¥Framework¥v1.1.4322」といったパスを追記してOKします。まぁ、このあたりはC#というよりWindowsの基本ですので、よくわからない人は別途勉強しておいて下さい。




 さて、パスを通したら、後はC#のソースコードを用意し、これをコマンドプロンプトからcsc.exeでコンパイルするだけです。——まず、サンプルとしてC#のソースコードを作りましょう。テキストファイルを作成できるワープロやテキストエディタを使い、以下のソースコードを記述して下さい。

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WinApp
{
public class WinForm : Form
{
private Label label1;
private Button button1;
private TextBox textBox1;

public WinForm()
{
label1 = new Label();
button1 = new Button();
textBox1 = new TextBox();
SuspendLayout();
label1.Location = new Point(50, 30);
label1.Size = new Size(260, 30);
label1.Text = "label1";
textBox1.Location = new Point(40, 80);
textBox1.Size = new Size(280, 20);
textBox1.Text = "textBox1";
button1.Location = new Point(130, 140);
button1.Size = new Size(120, 40);
button1.Text = "Click";
button1.Click += new EventHandler(button1_Click);
ClientSize = new Size(380, 200);
Controls.Add(textBox1);
Controls.Add(button1);
Controls.Add(label1);
Text = "WinForm";
ResumeLayout(false);
}

[STAThread]
static void Main()
{
Application.Run(new WinForm());
}

private void button1_Click(object sender, EventArgs e)
{
string s = textBox1.Text;
label1.Text = "こんにちは、" + s + "さん!";
}
}
}


 これは、あくまで「サンプルとして用意したもの」ですので、自分が書いたソースコードなどあればもちろんそれでもかまいません。ここでは、これを「MyCsApp.cs」という名前のテキストファイルで、「マイドキュメント」フォルダの中に保存しておきます。

 次に、コマンドプロンプト(MS-DOSプロンプト)を起動します。そして、cdコマンドでソースコードファイルを保存したディレクトリ(ここでは『マイドキュメント』フォルダ)に移動をします。そして、以下のように実行します。

csc MyCsApp.cs


 csc.exeは、このように「csc」の後にコンパイルするファイル名を続けて記述するだけで、そのソースコードファイルをコンパイルします。



 エラーもなくプロンプトに戻ったら、コンパイルが完了したことを示します。ソースコードファイルを保存したディレクトリに移動してみましょう。ちゃんと、ファイル名と同名のEXEファイル(この例なら「MyCsApp.exe」)が作成されているはずです。これをダブルクリックして起動し、ちゃんとプログラムが動作するか確かめてみましょう。




■Windowsアプリケーションのオプション

 実際にビルドされたプログラムを実行してみると、ちょっと変なことに気がつきます。ダブルクリックで起動すると、なぜか最初にコマンドプロンプトが起動してからEXEが起動するのです。これは、cscコマンドで普通にコンパイルすると、プログラムはコンソールアプリケーションとして作成されるためです。

 もし、WindowsのGUIを利用したアプリケーションを作成したいならば、cscに「/target:winexe」というオプションをつけてコンパイルをします。例えば、こんな具合です。

csc /target:winexe MyCsApp.cs


 このように、cscの後に/target:winexeというオプションをつけ、その後にコンパイルするソースコードファイル名を記述します。このようにしてビルドされたEXEは、Windowsアプリケーションとして認識され、起動してもコマンドプロンプトなどは現れず、直接アプリケーションのウインドウが現れるようになります。




 というわけで、別に専門の開発環境などなくとも、C#のプログラミングは行えるのです。テキストエディタでソースコードを書き、コマンドプロンプトからコンパイルコマンドを実行するだけで。——まぁ、ちょっとばかり面倒ですし、C#BuilderならGUIの設計もデザイナで簡単に行えますし、あんまり利点は感じないことでしょう。が、「いざとなれば何もなくともプログラミングはできるのだ」ということを知っておくのはきっと意味あることです。特定の開発ツールに頼らず、C#という言語を使うだけならこういう方法もあるのだ、ということは知識として知っておいて欲しいものです。



GO NEXT


GO HOME