VS2012 C#生成DLL並調用

1.建立一個C#工程生成DLL函數

 新建->項目->Visual C#->類庫->MyMethodsspa

項目建好後,爲了理解,將項目中的Class1.cs 文件 重命名爲 MySwap.cs,並在其中添加以下代碼,代碼功能就是交換兩個數:命令行

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace MyMethods
 8 {
 9     public class MySwap
10     {
11         public static bool Swap(ref long i, ref long j)
12         {
13             i = i + j;
14             j = i - j;
15             i = i - j;
16             return true;
17         }
18     }
19 }

添加文件MyMaxCD.cs,功能是完成求兩個數的最大公約數,代碼以下:debug

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace MyMethods
 8 {
 9      public class MaxCDClass
10      {
11           public static long MaxCD(long i, long j)
12           {
13                long a,b,temp;
14                if(i>j)
15                {
16                     a = i;
17                     b = j;
18                }
19                else
20                {
21                     b = i;
22                     a = j;
23                }
24                temp = a % b;
25                while(temp!=0)
26                {
27                     a = b;
28                     b = temp;
29                     temp = a % b;
30                }
31                return b;
32             }
33        }
34 }

而後點擊生成解決方案,在項目debug目錄下就有生成的dll文件。調試

2.使用生成的dllcode

新建->項目->Visual C#->控制檯應用程序->UseDllblog

在program.cs文件中添加以下代碼string

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using MyMethods;
 7 namespace UseDll
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             if (args.Length != 2)
14             {
15 
16                 Console.WriteLine("Usage: MyClient <num1> <num2>");
17 
18                 return;
19 
20             }
21 
22             long num1 = long.Parse(args[0]);
23 
24             long num2 = long.Parse(args[1]);
25 
26             MySwap.Swap(ref num1, ref num2);
27 
28             // 請注意,文件開頭的 using 指令使您得以在編譯時使用未限定的類名來引用 DLL 方法
29 
30             Console.WriteLine("The result of swap is num1 = {0} and num2 ={1}", num1, num2);
31 
32 
33 
34             long maxcd = MaxCDClass.MaxCD(num1, num2);
35 
36 
37 
38             Console.WriteLine("The MaxCD of {0} and {1} is {2}", num1, num2, maxcd); 
39 
40         }
41     }
42 }

注意代碼中要引入using MyMethods;it

到此還須要將剛纔生成的dll文件引入工程:io

UseDLL右鍵->添加引用->瀏覽 選擇剛纔生成的dll所在路徑 ok;

在UseDll代碼中,由於main函數須要用到參數,VS添加命令參數步驟以下:

UseDll右鍵->屬性->調試->命令行參數 我在這裏輸入44 33(注意參數之間不須要逗號)

截圖以下:

相關文章
相關標籤/搜索