【问题标题】:send image from C# to ATL COM DLL将图像从 C# 发送到 ATL COM DLL
【发布时间】:2013-06-17 00:02:15
【问题描述】:

我正在尝试将图像发送到 atl com dll。在 C# 中,

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?我将使用传入的字节数组在 com dll 中创建一个 opencv cv::mat。

谢谢。

【问题讨论】:

    标签: dll com atl bitmapdata


    【解决方案1】:

    我猜自动化兼容的方式是将Marshal.Copy 的内容转换为字节数组,并将其编组为 SAFEARRAY 字节。

    我不知道这是最简单的方法,但这是我能想到的第一个方法。如果您的接口不兼容自动化,可能还有其他方法,例如简单地将 IntPtr 作为字节指针和大小传递。

    【讨论】:

      猜你喜欢
      • 2013-06-21
      • 2012-03-03
      • 2013-09-08
      • 2011-09-26
      • 2022-01-26
      • 2016-12-19
      • 1970-01-01
      • 2012-03-09
      • 2023-04-05
      相关资源
      最近更新 更多