如何在c#中的struct(c / c ++)中封送union字段?

时间:2013-06-22 04:21:33

标签: c# marshalling typedef dllimport

我需要在我用c / c ++编写的c#程序中使用本机dll。 我需要在程序中使用的这个dll的一个功能是获取一个struct作为参数。

typedef struct
{
    REPLY_TYPE      replyType;

    union
    {
        POSITIVE_REPLY  positiveReply;
        NEGATIVE_REPLY  negativeReply;
    }
    message;

}
REPLY, *LPREPLY;

并且POSITIVE_REPLY和NEGATIVE_REPLY fiels是另一个结构:

typedef struct
{
    BYTE    bCommandCode;
    BYTE    bParameterCode;

    struct
    {
        BYTE    bE1;
        BYTE    bE0;
    }
    ErrorCode;

    struct
    {
        DWORD   dwSize;
        BYTE    bBody[ MAX_DATA_ARRAY_SIZE];
    }
    Data;
}
NEGATIVE_REPLY, *LPNEGATIVE_REPLY;

我该怎么做? 感谢。

0 个答案:

没有答案