gpt4 book ai didi

c# - 如何在 C# 中编码(marshal) C++ 枚举

转载 作者:可可西里 更新时间:2023-11-01 16:36:23 26 4
gpt4 key购买 nike

我需要在 C++ 和 C# 之间创建一个包装器。我有一个与此非常相似的功能:

virtual SOMEINTERFACE* MethodName(ATTRIBUTE_TYPE attribType = ATTRIBUTE_TYPE::ATTRIB_STANDARD) = 0;

enum 声明如下:

enum class ATTRIBUTE_TYPE { 
ATTRIB_STANDARD,
ATTRIB_LENGTH
};

如何包装 ATTRIBUTE_TYPE 枚举?

最佳答案

您的 C++ 枚举定义如下:

enum class ATTRIBUTE_TYPE { 
ATTRIB_STANDARD,
ATTRIB_LENGTH
};

默认情况下,enum class 类型的大小为int。这意味着您可以像这样将其转换为 C#:

enum ATTRIBUTE_TYPE { 
ATTRIB_STANDARD,
ATTRIB_LENGTH
};

这就是它的全部。 C# 枚举是 blittable 并且此 C# 枚举精确映射到您的 C++ 枚举。

关于c# - 如何在 C# 中编码(marshal) C++ 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22176159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com