'.NET Compact Framework'에 해당되는 글 1건

  1. 2006/02/15 hancem .NET CF에서 P/Invoke를 통한 마샬링 형식에서의 제약사항

반환값

32비트 이하의 값 형식만 가능합니다.

부동 소수점은 사용할 수 없습니다.

매개 변수

blittable 형식의 마샬링만 지원합니다.

blittable 형식 -> 관리 및 네이티브 모두 메모리에서 동일하게 표현됨

blittable 형식이 아님 -> 메모리 변환 필요

blittable 형식만 있으므로 모든 개체는 고정되고 복사되지 않습니다.

예외: VB.NET에서 ByVal 문자열 전달

중첩된 개체는 메모리 변환이 필요하므로 마샬링할 수 없습니다(blittable 형식이 아님).

32비트 이하의 값 형식만 가능합니다.

값이 스택에 전달됩니다.

예외: float32

참조

blittable 참조 형식 전달

값 형식에 대한 참조 전달

이것은 float32를 전달하는 방법입니다.

값 배열 형식을 전달할 수 있습니다.

포인터를 첫 번째 개체로 가져오는 네이티브의 경우 개체는 예상할 수 있는 순서로 배치됩니다.

문자열은 특수한 전달 문자 배열 -> immutable

StringBuilder는 특수한 전달 문자 배열 -> mutable(길이를 별개로 전달해야 함)

참고: C# bool은 8비트이며 Win32 BOOL과 동일하지 않습니다.

정렬: 기본 컴파일러 정렬(4바이트)

Marshal.GetLastWin32Error는 GetLastError() 구문을 지원합니다.

지원 안 함:

MarshalAs: blittable이 아닌 형식은 지원 안 함

StructLayout: 레이아웃 변경 불가

대리자

DateTime

기본 호출 규약만 지원

.NET Compact Framework 팀, 2005년 1월 6일

2006/02/15 15:27 2006/02/15 15:27