c로 작성된 dll을 사용하고 있습니다. 내 모든 C# 프로그램에 필요한 기능을 가져 왔습니다. 대부분의 기능은 제대로 작동하지만 몇 가지 문제가 있습니다. 문제가있는 함수는 입력으로 구조체가 필요합니다. C#에서이 구조체를 정의해야한다고 가정합니다.하지만이 구조체는 혼란 스럽기 때문에 내가 시도한 것을 남겨 둘 것입니다. 구조체는 상당히 길다 그래서 것입니다 단순히 C에서의 모습 :dll에서 c struct를 C#으로 변환
typedef struct chain_link_info
{
unsigned short command;
unsigned long* buff_id;
FLAGS_TYPES flags; // this is a union that i will list below
} CHAIN_LINK_INFO;
typedef union flags_type
{
unsigned long ulong;
struct
{
unsigned short std_flags;
unsigned short high
} ushort;
struct
{
unsigned int a : 1;
unsinged int b : 1;
unsinged int c : 1;
unsinged int d : 1;
unsinged int e : 2;
unsinged int f : 1;
unsinged int g : 1;
unsinged int h : 1;
unsinged int i : 1;
unsinged int j : 1;
unsinged int k : 1;
unsinged int l : 1;
unsinged int m : 1;
unsinged int n : 1;
unsinged int o : 1;
unsigned int high_word :16
} std_bits;
} FLAGS_TYPE;
C#에서이 stucts을 정의하는 적절한 방법은 무엇입니까? 감사합니다
이 경우 [StructLayout] (http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.structlayoutattribute.aspx)이 재생되지만 들어올 수는 없다고 생각합니다. 양. –
죄송합니다 downvote, 나는 그것을 제거했습니다. 우연히 클릭해야합니다. 노동 조합이 어떻게 매핑되는지 궁금합니다. –