用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

 

posted @   lsgxeva  阅读(2118)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2017-11-18 Win10 安装 Linux 子系统
点击右上角即可分享
微信分享提示