以下のようにC ++で構造定義を持っています
typedef struct
{
unsigned __int32 SetCommonPOP:1;
unsigned __int32 SetCommonSVP:1;
unsigned __int32 SetCommonUHDP:1;
unsigned __int32 SetCommonMHDP:1;
unsigned __int32 MinPwdLength:8;
unsigned __int32 MaxPwdLength:8;
unsigned __int32 StoredHdpBackups:8;
} HPM_PWD_CONSTRAINTS;
以下のようにそれをc#に翻訳しました
[StructLayout(LayoutKind.Explicit, Size=28, CharSet=CharSet.Ansi)]
public struct HPM_PWD_CONSTRAINTS
{
[FieldOffset(0)] public uint SetCommonPOP;
[FieldOffset(1)] public uint SetCommonSVP;
[FieldOffset(2)] public uint SetCommonUHDP;
[FieldOffset(3)] public uint SetCommonMHDP;
[FieldOffset(4)] public uint MinPwdLength;
[FieldOffset(12)] public uint MaxPwdLength;
[FieldOffset(20)] public uint StoredHdpBackups;
};
私が c# に変換している c++ のコードは、この構造体のオブジェクト PWD を定義し、int x の値をこのオブジェクトに渡します。
*((uint*)&PWD) = x;
これはどのように作動しますか?この後の構造体オブジェクトの値はどうなるでしょうか? これを C# に変換するにはどうすればよいですか?