Winapi 如何使用P/Invoke调用PowerShell 1.0中的Win32函数?

Winapi 如何使用P/Invoke调用PowerShell 1.0中的Win32函数?,winapi,powershell,pinvoke,Winapi,Powershell,Pinvoke,在许多情况下,从PowerShell脚本调用Win32函数或其他DLL会很有用。给以下函数签名: bool MyFunction( char* buffer, int* bufferSize ) 我听说在PowerShell CTP 2中有一些东西可以让这变得更容易,但我很好奇这是如何在PowerShell 1.0中实现的。需要调用的函数使用指针这一事实可能会影响解决方案(但我真的不知道) 所以问题是,编写PowerShell脚本以调用上述导出的Win32函数的最佳方法是什么 记住PowerS

在许多情况下,从PowerShell脚本调用Win32函数或其他DLL会很有用。给以下函数签名:

bool MyFunction( char* buffer, int* bufferSize )
我听说在PowerShell CTP 2中有一些东西可以让这变得更容易,但我很好奇这是如何在PowerShell 1.0中实现的。需要调用的函数使用指针这一事实可能会影响解决方案(但我真的不知道)

所以问题是,编写PowerShell脚本以调用上述导出的Win32函数的最佳方法是什么


记住PowerShell 1.0。

PowerShell 1.0中没有任何机制可以直接调用Win32 API。当然,您可以编写一个C#或VB.NET帮助程序类来为您完成这项工作,并从PowerShell调用它

更新:看一看-


要从Powershell调用非托管代码,请使用Lee Holmes创建的Invoke-Win32函数。你可以找到来源。在这里,您可以看到如何调用具有指针的函数的示例,但更简单的用法是:

PS C:\> Invoke-Win32 "msvcrt.dll" ([Int32]) "puts" ([String])  "Test"
Test
0