DLL Command

コマンドプロンプトから C# の DLL を作成します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

DLL の作成

  1. コマンドプロンプトを起動して Command Line から C# の DLL を作成します。
    Command Line から起動するとソースプログラム一本で DLL を作成することが出来ます。
    また何故かその方が DLL のサイズが小さくなります。
    Koyomi.DLL をプロジェクトで作成すると 16KB(16,384) ですが、Command Line から作成すると 5,120 Byte でした。
    次のページ Command Line から Windows プログラムを実行 を参照して、フォルダ(例えば C:\DATA\C#)に vsvars32.bat を格納して下さい。
  2. GcmLcm.dll を作成するソースプログラム GcmLcm.cs です。
    フォルダ(C:\DATA\C#)に格納して下さい。
    /*★ GCM, LCM の DLL Object Class     前田 稔 ★*/
    // File: GcmLcm.cs 
    
    namespace GcmLcm
    {
        public class GCMLCM
        {   int d1,d2;
    
            public GCMLCM(int n, int m)
            {   d1= n;
                d2= m;
            }
    
            public int Gcm()
            {   int n,m;
                n= d1;
                m= d2;
                while(n!=m)
                {   if (n>m)    n-= m;
                    else        m-= n;
                }
                return n;
            }
    
            public int Lcm()
            {   int     wk;
                wk= Gcm();
                return d1*d2/wk;
            }
        }
    }
    
  3. Command Line からコンパイルして GcmLcm.dll を作成します。
    C:\DATA\C#>vsvars32.bat
    C:\DATA\C#>csc /target:library /out:GcmLcm.dll GcmLcm.cs
    
    C:\DATA\C# のフォルダに GcmLcm.dll が作成されます。
  4. DLL を使って GCM, LCM を計算する実行形式のファイル TestGcm.exe を作成します。
    TestGcm.cs を C:\DATA\C# のフォルダに格納して下さい。
    /*★ DLL を使って GCM LCM を計算     前田 稔 ★*/
    // TestGcm.cs
    
    using System;
    using GcmLcm;
    
    class console
    {
        public static int Main()
        {   GCMLCM  glcm = new GCMLCM(24,32);
            Console.WriteLine("GCM={0}  LCM={1}",glcm.Gcm(),glcm.Lcm());
            System.Console.ReadLine();
            return 0;
        }
    }
    
  5. TestGcm.cs をコンパイルするコマンドです。
    C:\DATA\C#>csc /out:TestGcm.exe /reference:GcmLcm.dll TestGcm.cs 
    
  6. TestGcm.exe をダブルクリックで起動すると 24,32 の GCM, LCM が計算されます。
    計算する値(現在は 24,32)をタイプ入力出来るようにプログラムを修正して下さい。

Koyomi.dll の作成

  1. 次は Command Line から Koyomi.dll を作成します。
    Koyomi.dll の説明は こよみ DLL を参照して下さい。
    DLL のソースプログラム Koyomi.cs を C:\DATA\C# のフォルダに格納して下さい。
    /*★ こよみの DLL Object Class     前田 稔 ★*/
    // File: Koyomi.cs 
    using System;
    
    namespace Koyomi
    {
        public class KOYOMI
        {   int[]    MTBL= { 0,31,59,90,120,151,181,212,243,273,304,334 };
            string[] WTBL= { "日","月","火","水","木","金","土" };
            int      yy,mm,dd;
            int      Today,cnt,wek;
    
            //Constructor
            public KOYOMI()
            {   //西暦1年1月1日から今日までの日数を調べる
                yy= DateTime.Today.Year;
                mm= DateTime.Today.Month;
                dd= DateTime.Today.Day;
                Today= Days();
            }
            // 生年月日を入力して曜日と通算日数を計算
            public bool GetDate()
            {   string str;
                string[] ymd;
                Console.WriteLine("生年月日= YYYY/MM/DD を入力(Enter のみで終了)");
                str = Console.ReadLine();
                if (str==string.Empty)  return false;
                ymd= str.Split(new char[] {'/'});
                yy= int.Parse(ymd[0]);
                mm= int.Parse(ymd[1]);
                dd= int.Parse(ymd[2]);
                cnt= Days();
                wek= cnt%7;
                cnt= Today-cnt+1;
                return true;
            }
            // 生年月日と曜日と通算日数を印字
            public void Print()
            {   Console.WriteLine("{0}年 {1}月 {2}日 ({3}曜日)  通算日数={4}",
                    yy, mm, dd, WTBL[wek], cnt);
            }
            // 西暦1年1月1日からの通算日数を調べる関数
            public int  Days()
            {   int     w;
                w=  (yy-1)*365;         //年*365
                w+= (yy/4 - yy/100 + yy/400 + MTBL[mm-1] + dd);
                if (mm<3 && Uruu(yy))  w--;
                return(w);
            }
            // 閏年を調べる関数
            public bool  Uruu(int year)
            {   if (year%400L==0L)  return(true);
                if (year%100L==0L)  return(false);
                if (year%4L==0L)    return(true);
                return(false);
            }
        }
    }
    
  2. Command Line からコンパイルして Koyomi.dll を作成します。
    C:\DATA\C#>vsvars32.bat
    C:\DATA\C#>csc /target:library /out:Koyomi.dll Koyomi.cs
    
    C:\DATA\C# のフォルダに Koyomi.dll が作成されます。
  3. Koyomi.dll を使って曜日と経過日数を表示するプログラムを作成します。
    TestKoyomi.cs を C:\DATA\C# のフォルダに格納して下さい。
    /*★ 曜日と経過日数を表示     前田 稔 ★*/
    using System;
    using Koyomi;
    
    class console
    {
        public static int Main()
        {
            KOYOMI  koyomi = new KOYOMI();
            if (koyomi.GetDate()!=false)
            {   koyomi.Print();  }
            return 0;
        }
    }
    
  4. TestKoyomi.cs をコンパイルするコマンドです。
    C:\DATA\C#>csc /out:TestKoyomi.exe /reference:Koyomi.dll TestKoyomi.cs 
    
  5. TestKoyomi.exe をダブルクリックで起動して、年月日をタイプすると、曜日と経過日数が表示されます。
    2011/3/11 とタイプすると東日本大震災の、1995/1/17 とタイプすると阪神・淡路大震災の曜日と経過日数が表示されます。
    また 2001/9/11 とタイプするとアメリカ同時多発テロの曜日と経過日数が表示されます。

超初心者のプログラム入門(C# Frame Work)