代码之家  ›  专栏  ›  技术社区  ›  Scott Saad

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

  •  4
  • Scott Saad  · 技术社区  · 16 年前

    bool MyFunction( char* buffer, int* bufferSize )
    

    在PowerShell 1.0中做得最好 . 需要调用的函数 可能会影响解决方案(但我真的不知道)。

    所以问题是,编写一个PowerShell脚本来调用上面的导出Win32函数,最好的方法是什么?

    记住PowerShell1.0。

    3 回复  |  直到 16 年前
        1
  •  5
  •   Bruno Gomes    16 年前

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

    PS C:\> Invoke-Win32 "msvcrt.dll" ([Int32]) "puts" ([String])  "Test"
    Test
    0
    
        2
  •  1
  •   Kev    16 年前

    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