VOOSTDEVICE 마샬링

2019, Apr 08    

VOOSTDEVICE 사용하기 위한 UI 환경

  • ICamera, IUnit 구현하는 VoostCamera Model. (Camera 와 같음)
  • VoostCamera 에 데이터를 채우고, Tree 와 정보교환 할 수 있는 VoostDeviceManager.
  • Voost.dll 함수 가져와 사용할 수 있게 만드는 VoostSDKProxy.

Native 환경

  • Voost.dll 감싸는 VoostSDK.dll 생성.
  • VoostSDK.dll 에서 함수 표출.

VOOSTDEVICE 가져오는 방법

  • Voost.dll VoostGetDevices 호출 할 수 있는 함수 생성. 표출.
  • 함수 마샬링 및 바인드.

마샬링 방법.

  • out IntPtr 로 Device 배열 가져오기, out UInt32 로 배열 사이즈 가져오기.
  • 위 매개변수 받고 Int32 return 하는 delegate 선언, 생성, Native 함수와 bind.
  • 함수 호출 후 가져온 디바이스 배열을 마샬링.

VOOSTDEVICE 구조체 마샬링

  • CharSet 은 Unicode, Int 는 Int32, unsigend int 는 UInt32, wchar_t* 는 String으로 마샬링.

VOOSTDEVICE 배열 마샬링

  • PtrToStructure<>() 이용.
  • 제네릭 사이즈 만큼의 포인터를 구조체로 변환.
  • 포인터에 VOOSTDEVICE 사이즈 만큼 더 하는 방식으로 배열 Iterate.