4

PowerShell スクリプトから Win32 関数またはその他の DLL を呼び出すと便利なシナリオは多数あります。次の関数シグネチャが与えられた場合:

bool MyFunction( char* buffer, int* bufferSize )

PowerShell CTP 2 でこれを簡単にする何かがあると聞きましたが、これがPowerShell 1.0 でどのように行われるのが最適か知りたいです。呼び出す必要がある関数が ポインターを使用しているという事実は、ソリューションに影響を与える可能性があります (まだよくわかりません)。

問題は、上記のようなエクスポートされた Win32 関数を呼び出すことができる PowerShell スクリプトを作成する最良の方法は何かということです。

PowerShell 1.0 について覚えておいてください。

4

2 に答える 2

5

Powershellからアンマネージコードを呼び出すには、LeeHolmesによって作成されたInvoke-Win32関数を使用します。ここでソースを見つけることができます。そこに、ポインターを持つ関数を呼び出す方法の例を見ることができますが、もっと簡単な使用法は次のようになります。

PS C:\> Invoke-Win32 "msvcrt.dll" ([Int32]) "puts" ([String])  "Test"
Test
0
于 2008-09-26T23:48:55.100 に答える
1

PowerShell 1.0には、Win32APIを直接呼び出すメカニズムはありません。もちろん、C#またはVB.NETヘルパークラスを作成してこれを実行し、PowerShellから呼び出すこともできます。

更新:見てください-

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

于 2008-09-26T23:44:28.777 に答える