对于一个项目,我需要将一个用C ++编写的枚举列表转换为VB.net枚举列表。到目前为止一切正常,除了C ++列表中的#define枚举。这就是我要转换的内容:
typedef enum
{
#define EnumValue(a,b) a, b=a+255
EnumValue(PARAM_Start,PARAM_END)
} ID;
如您所见,这会在运行时创建255个枚举值。这是如何在VB.net中完成的?
编辑/已解决30-09-2016
如下所述,我认为它会创建255个枚举,而不是仅仅创建两个枚举,而是给出PARAM_END
额外的255个偏移量,从而做出了错误的假设。含义:如果我有三个枚举,这些枚举的索引是0,1,3。现在,如果我希望ENUM_3
的索引从10开始,我只需添加ENUM_2 + 8
,这样ENUM_3将从索引10开始。
感谢大家快速响应并帮助我! : - )
答案 0 :(得分:1)
VB等价物是:
Public Enum ID
PARAM_Start
PARAM_END=PARAM_Start+255
End Enum
不是你所说的255个值,而只是2个。
答案 1 :(得分:0)
正如评论中所提到的,我认为你的C ++只会创建2 ...
你能使用T4 Text Template吗?:
将TextTemplate.tt
添加到VB项目中并使用以下代码填充:
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ import namespace="System" #>
<#@ output extension=".vb" #>
Namespace MyNamespace
Public Enum MyEnum
<#
for (int i = 1; i < 256; i++)
{
#>
Number<#= i #> = <#= i #>
<# } #>
End Enum
End Namespace
构建您的解决方案,它将为您生成类型。