簡體   English   中英

如何在C#中編組C ++枚舉

[英]How to marshal a C++ enum in C#

我需要在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 
};

這里的所有都是它的。 AC#enum是blittable,這個C#enum完全映射到你的C ++枚舉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM