これから説明するのはライブラリであり、C# を使用して DLL ファイルを作成する方法を学びましょう。DLL といえば、WINDOWS の代表的なものであり、誰もがよく使うものです。攻撃の対象です。何はともあれ、まずはコマンド ラインを使用して C# プログラムを DLL にコンパイルする方法と、それをクライアントで使用する方法から始めましょう。 2 つのファイルで、1 つは数値の階乗を計算するために使用される Factorial.cs で、もう 1 つは渡された文字列パラメーター内の数値の数を計算するために使用される
csc /target:library /out:Functions.dll Factorial.cs DigitCounter.cs
各パラメーターの使用法について説明します:
/out: Functions.dll: 出力 DLL のファイル名を指定します。通常、最初のパラメーターを省略すると、デフォルトのファイルになります。最初のファイルのファイル名は Factorial.dll です
次に、このライブラリを使用する、クライアント ファイル FunctionClient.cs という名前の別のファイルを作成します。次の言語名:
/R: Functions.DLL: 参照するライブラリを指定します。現在のディレクトリにない場合は、そのフルパスを指定する必要があります。以下にこれらのファイルのコードを記述します。
000: // LibrariesFactorial.cs
001: System を使用します。
003: 名前空間関数
004: {
006: {
007: public static int Calc(int i)
008 : {
009: return(( i 011: }
012: }
これは階乗のコードです。 cs ファイルの 003 行目で、namespace は名前空間を意味します。M$ によれば、.NET がクラスを正しくロードできるように、ライブラリはその名前空間に従ってパッケージ化する必要があります。
DigitCounter.cs ファイルの内容は次のとおりです。
000: // LibrariesDigitCounter.cs
001: System を使用します。
002:
003: 名前空間関数
004: {
006: {
007: public static int NumberOfDigits(string theString)0 08: {
009 : int count = 0;
010: for ( int i = 0; i
012: if ( Char.IsDigit(theString[i]) )
013: {
014 : count++;
015: }
016: }
017:
018: return count;
020: }
021: }
この例の名前空間は最初のものと一致している必要があることに注意してくださいパラメーター内の数値の数を計算するのは、同じライブラリ内の NumberOfDigits メソッドであるためです。
3 番目のファイルは FunctionClient.cs です
ライブラリが作成されると、他のクラスで使用できることがわかっています。 (ナンセンスです。そうしないと、どうやってライブラリと呼ぶことができますか?) 次の C# プログラムは、先ほど作成したライブラリ内のクラスを使用します。
000: // LibrariesFunctionClient.cs
001: using System;
003: クラス FunctionClient
005: public static void Main(string[] args)
006: {007: Console.WriteLine("Function Client")
008:
010: {
011: Console.WriteLine("使用法: FunctionTest ... ");
013: }
014:
015: for ( int i = 0; i < args.Length; i++ )
016: {
017: int num = Int32.Parse(args[i]);
018: Console.WriteLine(
019: "文字列 [{0}] の桁数は [{ 1}]" ,
020: args[i],
021: DigitCount.NumberOfDigits(args[i]));
022: Console.WriteLine(
023: "[{0}] の階乗は [{1 }]",
024: num,
025: Factorial.Calc(num) );
026: }
027: }
028: }
002 行目で、using Functions は Functions.DLL クラスへの参照を指定します。
コマンドラインに次のコマンドを入力すると、出力が表示されます:
FunctionTest 3 5 10
Output:
Function Client
文字列 [3] の桁数は [1]
[3] の階乗は [6] です
文字列 [5] の桁数は [1] です