用Powershell調用DLL文件


用Powershell調用DLL文件

來源 https://blog.csdn.net/itanders/article/details/5702771

 

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

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

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

namespace Math  
{  
public class Methods  
{  
public Methods()  
{  
}  
public static int CompareI(int a, int b)  
{  
if (a>b)  
return a;  
else  
return b;  
}  
  
public int CompareII(int a, int b)  
{  
if (a>b)  
return a;  
else  
return b;  
}  
}  
}  

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

[void][System.Reflection.Assembly]::UnsafeLoadFrom("G:/Math2.dll")
[Math.methods]::CompareI(10,2)  
$a=New-Object Math.Methods  
$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來聲明一個對象引用。

 

============ End

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM