用Powershell調用DLL文件

因爲Windows PowerShell能完全訪問.NET Framework,所以我們就可以想象如何用Powershell來調用DLL類庫呢。

 

這裏我們用C#寫一段代碼編譯爲DLL文件(這是在做一個數字大小的比較,CompareI是用靜態方法,CompareII則是一般方法)

 

編譯命令:csc /target:library G:/Math2.cs

 

  1. namespace Math  
  2. {   
  3.   public class Methods   
  4.   {   
  5.     public Methods()   
  6.     {   
  7.     }   
  8.     public static int CompareI(int a, int b)   
  9.     {   
  10.       if (a>b)  
  11.     return a;  
  12.       else  
  13.     return b;  
  14.     }   
  15.   
  16.     public int CompareII(int a, int b)   
  17.     {   
  18.       if (a>b)  
  19.     return a;  
  20.       else  
  21.     return b;  
  22.     }   
  23.   }   
  24. }   

 

最後我們開始在Powershell環境下調用:

  1. [void][reflection.assembly]::LoadFile("G:/Math2.dll")  
  2. [Math.methods]::CompareI(10,2)  
  3. $a=New-Object Math.Methods  
  4. $a.CompareII(2,3)  

結果爲:10     3

 

 

[void][reflection.assembly]::LoadFile("D:/VS2008/VC/Math2.dll")
我們必須以這種形式加載DLL庫

 

 

[Math.methods]::CompareI(10,2)

我們看到Powershell在調用靜態方法的時候必須使用方括號加上雙冒號“::”的形式來調用靜態方法。


$a=New-Object Math.Methods
$a.CompareII(2,3)

而一般方法則不然,必須用New-Object來聲明一個對象引用。

發佈了115 篇原創文章 · 獲贊 8 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章