小编Gfo*_*rse的帖子

元帅字节枚举

所以我正在使用Marshal类将非托管结构解析为托管结构.到目前为止,一切都按预期工作,除了我正在努力如何将非托管字符转换为托管枚举类型.

例如:

<StructLayout(LayoutKind.Sequential, Pack:=1)>
Public Structure UnamangedToManaged
     <MarshalAs(UnmanagedType.I1)>
     Public _Enum As ManagedCustomEnum
end structure


Public Enum ManagedCustomEnum
    Value_1
    Value_2
    Value_3
    Value_4
    Value_etc
End Enum
Run Code Online (Sandbox Code Playgroud)

这给出了错误: Unvalid combination

如果我只是简单地删除<MarshalAs(UnmanagedType.I1)>然后解析工作除了结构的其余部分的索引关闭,给出无效的值.

尝试了很多可能性,并阅读了所有MSDN文章,但仍然没有运气.

希望有人可以简单地指出我正确的方向.

c++ vb.net enums marshalling

3
推荐指数
1
解决办法
80
查看次数

按位组合作为整数到枚举

目前我正在尝试解析一个整数,该整数是来自第三方 API 的枚举的按位组合。例如:我收到一个integer值,1035该值包含三个枚举值;

enum Status
    1= "Status 1" 
    2= "Status 2" 
    4= "Status 3" 
    8= "Status 4" 
    ........ 
    1024= "Status 8"
end enum
Run Code Online (Sandbox Code Playgroud)

所以我需要一个将值转换1035为的函数Status 1 + Status 2 + Status 4 + Status 8

尝试将其转换为位,然后使用位移位,但这并没有给我正确的结果...希望有人可以在 C# 或 vb.net 示例中帮助我。

c# vb.net math logic bit

0
推荐指数
1
解决办法
2863
查看次数

标签 统计

vb.net ×2

bit ×1

c# ×1

c++ ×1

enums ×1

logic ×1

marshalling ×1

math ×1