Как передать объект класса параметров c # в c ++ typedef структуру объединения в неуправляемом импорте DLL? - PullRequest
0 голосов
/ 08 января 2019

Я хочу вызвать неуправляемую программу на С ++ со структурой в качестве параметра.

Структура c ++ похожа на приведенную ниже.

typedef union {
    BYTE byBuffer[32];

    struct {
        union {
        DWORD dwOptionFlag;
            struct {
                unsigned BIT_IGNOREEXSTOP : 1;
                unsigned BIT_USE_CUSTOMACCDEC : 1;
            };
        } flagOption;
        WORD wCustomAccDecTime;
    };
} VELOCITY_OPTION_EX;

Документирование параметров функции в c ++

int FAS_MoveVelocityEx(
    BYTE nPortNo,
    BYTE iSlaveNo,
    DWORD lVelocity,
    int iVelDir,
    VELOCITY_OPTION_EX* lpExOption
);

код C #, который я использую для импорта функции dll

[DllImport("EziMOTIONPlusR.dll")]
public static extern EziServoResult FAS_MoveVelocityEx
    (byte nPortNo, byte iSlaveNo, long lVelocity, int iVelDir, out VELOCITY_OPTION_EX lpExOption);

Как создать класс из c #, который соответствует VELOCITY_OPTION_EX в c ++?

Примечание: У меня есть только документация + библиотека dll, и она написана на c ++.

...