现在的位置: 首页 > 综合 > 正文

用Powershell调用DLL文件

2013年11月22日 ⁄ 综合 ⁄ 共 935字 ⁄ 字号 评论关闭

因为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来声明一个对象引用。

抱歉!评论已关闭.