2008-09-26 78 views
4

在很多情况下,从PowerShell脚本调用Win32函数或其他DLL会很有用。要考虑下面的函数签名:如何使用P/Invoke在PowerShell 1.0中调用Win32函数?

bool MyFunction(char* buffer, int* bufferSize) 

我听到有东西,使在PowerShell中的CTP 2这更容易,但我很好奇这是怎么使用PowerShell 1.0最好的做法。需要调用的功能正在使用指针可能会影响解决方案(但我不太了解)。

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

记住PowerShell 1.0。

回答

5

从Powershell的调用非托管代码,使用由李福尔摩斯创建的调用-Win32函数。你可以找到源here。在那里,你可以看到如何调用具有指针的函数的例子,但更琐碎的用法是:

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