将C ++ #Define枚举创建转换为vb.net

时间:2016-09-29 14:12:35

标签: c++ vb.net enums

对于一个项目,我需要将一个用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开始。

感谢大家快速响应并帮助我! : - )

2 个答案:

答案 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

构建您的解决方案,它将为您生成类型。