2013-08-23 25 views
3

刚接触PowerShell脚本。任何人都可以建议简单的方式来引用在PowerShell中定义在C++头文件中的枚举/常量吗?提前致谢。如何在Powershell脚本中引用C++枚举

+0

你能提供有关枚举的示例/恒定您已定义和你将如何在Powershell中使用它? – vonPryz

+0

以下链接可能会提供你正在寻找的东西。这取决于您是否意味着C++头文件已被编译为PowerShell知道的类型(即.Net类型)。如果是这样,这个链接可以帮助:http://kristofmattei.be/2013/04/23/when-using-an-enum-in-powershell-use-the-members-name-not-the-members-value/ – DWright

回答

0

没有一种方法可以像.NET enum那样做。您将不得不:

  • 解析头文件并自己查找值。
  • 合成一个包含头文件#include的C++/CLI cpp文件,并通过一个.NET类型公开enum/const 。

首先,您可以使用Get-Content逐行读入头文件,使用-match和/或Select-String读取正则表达式搜索。对于第二个(我会走的路线),您需要将cl.exe与/clr开关一起使用来生成一个DLL,然后可以使用该DLL加载Add-Type -Path C:\clicpp.dll。一旦已经声明在C++/CLI,其使用的值从标题文件管理的枚举,可以参考它在PowerShell中像这样:

[NamespaceName.EnumName]::EnumValue