Roc*_*llz 9 c# c++ pinvoke marshalling
我需要在C++和C#之间创建一个包装器.我有一个非常类似的功能:
virtual SOMEINTERFACE* MethodName(ATTRIBUTE_TYPE attribType = ATTRIBUTE_TYPE::ATTRIB_STANDARD) = 0;
Run Code Online (Sandbox Code Playgroud)
该enum声明如下:
enum class ATTRIBUTE_TYPE {
ATTRIB_STANDARD,
ATTRIB_LENGTH
};
Run Code Online (Sandbox Code Playgroud)
如何包装ATTRIBUTE_TYPE枚举?
Dav*_*nan 12
您的C++枚举定义如下:
enum class ATTRIBUTE_TYPE {
ATTRIB_STANDARD,
ATTRIB_LENGTH
};
Run Code Online (Sandbox Code Playgroud)
默认情况下,enum class类型的int大小.这意味着您可以将其转换为C#,如下所示:
enum ATTRIBUTE_TYPE {
ATTRIB_STANDARD,
ATTRIB_LENGTH
};
Run Code Online (Sandbox Code Playgroud)
这里的所有都是它的.AC#enum是blittable,这个C#enum完全映射到你的C++枚举.