728x90
반응형
728x170
using System;
using System.Runtime.InteropServices;
/// <summary>
/// 커스텀 구조체
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct CustomStructure
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Public
#region Field
/// <summary>
/// 문자 배열
/// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
public char[] CharacterArray;
/// <summary>
/// 문자열
/// </summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 50)]
public string String;
#endregion
}
CustomStructure structure = new CustomStructure();
Console.WriteLine(Marshal.SizeOf(structure));
※ fixed 키워드를 사용하면 배열의 크기를 고정할 수 있지만, 프로젝트 속성에서 [안전하지 않은 코드 허용] 항목을 설정해야 하지만
※ MarshalAs키워드를 사용해 고정크기 배열(혹은 고정크기 문자열)을 사용할 수 있다.
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] 누겟 설치 : AudioSwitcher.AudioApi.CoreAudio (0) | 2022.01.08 |
---|---|
[C#/COMMON] 누겟 설치 : AudioSwitcher.AudioApi (0) | 2022.01.08 |
[C#/COMMON] 누겟 설치 : NAudio (0) | 2022.01.08 |
[C#/COMMON] Configuration 클래스 : AppData 폴더에서 구성 파일 사용하기 (0) | 2022.01.08 |
[C#/COMMON] Enumerable 클래스 : Repeat 정적 메소드를 사용해 값을 초기화한 배열 구하기 (0) | 2022.01.08 |
[C#/COMMON] 파일 저장소 사용하기 (0) | 2022.01.02 |
[C#/COMMON] Stream 클래스 : 스트림 복사하기 (0) | 2022.01.01 |
[C#/COMMON/.NET5] 누겟 설치 : System.Management (0) | 2021.12.26 |
[C#/COMMON/.NET5] ManagementObjectSearcher 클래스 : 오디오 장치 열거하기 (0) | 2021.12.26 |
[C#/COMMON/.NET5] 누겟 설치 : FftSharp (0) | 2021.12.17 |
댓글을 달아 주세요