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 HOME