如何控制Com互操作性的变量顺序?

时间:2015-02-18 14:46:42

标签: c# com-interop

我在C ++代码中有这个结构(C ++ Com服务器)

struct
{
    int     f1;
    double  f2[3];
    int     f3;
};

我在C#上写了一些调用这个C ++ COM方法的代码,我从这个方法中得到了这个结构。

我发现我得到的结构有不同的顺序变量。 返回值struct是(Fields重新排序)

struct
{
    double   f2[3];
    int      f1;    
    int      f3;
};

有人可以解释我如何保留原始订单? 为什么我以不同的顺序取回它?

(结构来自我无法控制的其他应用程序 - 所以使用' StructLayout'没有帮助)

1 个答案:

答案 0 :(得分:0)

您可以在C#代码中使用StructLayoutAttribute

[StructLayout(LayoutKind.Sequential)]