繁体   English   中英

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

[英]How do I call a Win32 Function in PowerShell 1.0 using P/Invoke?

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

bool MyFunction( char* buffer, int* bufferSize )

我听说在 PowerShell CTP 2 中有一些东西可以使这更容易,但我很好奇如何最好地在 PowerShell 1.0 中完成 需要调用的函数使用指针这一事实可能会影响解决方案(但我真的不知道)。

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

请记住 PowerShell 1.0。

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

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

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

更新:看看 -

http://blogs.msdn.com/powershell/archive/2006/04/25/583236.aspx http://www.leeholmes.com/blog/ManagingINIFilesWithPowerShell.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM