2013-06-20 4 views
0

atl com dll로 이미지를 보내려고합니다. C#에서, C#에서 COM DLL로 이미지 전송

System.Drawing.Imaging.BitmapData bmpdata = 
bmp1.LockBits(new System.Drawing.Rectangle(0,0,bmp1.Width, bmp1.Height), 
System.Drawing.Imaging.ImageLockMode.ReadWrite, bmp1.PixelFormat); 

그리고 바로 이런의 BitmapData의이 ByteArray를 얻을 수

,

bmpdata.Scan0; 

어떻게 ATL COM DLL을에이 비트 맵 데이터를 보낼 수 있습니까? 들어오는 bytearray를 사용하여 com dll 안에 opencv cv :: mat을 만들 것입니다.

감사합니다.

답변

0

자동화와 호환되는 방법은 내용을 바이트 배열에 Marshal.Copy으로하고 바이트의 SAFEARRAY로 마샬링해야합니다.

나는 그것이 가장 간단한 방법이라고 생각하지 않지만 그것이 내가 생각할 수있는 첫 번째 것이다. 인터페이스가 자동화와 호환되지 않는다면 아마도 IntPtr을 바이트 포인터 및 크기로 전달하는 것과 같은 다른 방법이있을 수 있습니다.