액세스 제어 장치 (터미널)를 사용하고 있습니다. API는 기본입니다. 장치에 데이터를 보내려면 구조체 (API에서 제공)를 인스턴스화하고 [Marshal.StructureToPtr]을 사용하여 IntPtr로 변경 한 다음 해당 포인터를 API 함수에 전달합니다. 다음은 내가 작업중인 구조체입니다.Interop : 구조체 멤버 이름이 C# 키워드와 충돌 함 - 이벤트
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct NameOfTheStruct
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
ushort[] event;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
ushort[] someName;
};
주어진 구조체의 멤버 이름이 [이벤트] 키워드와 겹치는 것이 문제입니다. 회원 이름을 변경하면 기본 api에 대한 함수 호출이 실패합니다.
이겠습니까 :
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
[ComAliasName("event")]
ushort[] eventName;
내 문제를 해결? 아니면 다른 해결책이 있습니까?
고맙습니다. 할 수있을 때마다 주로 언어 학습용 서적을 사용합니다.하지만이 규칙을 기억하지는 않습니다 ... 나는 rtfm에 대한 시간 인 것 같습니다. :). –