如何将生成的图像/位图/ GDI对象传递给其他进程?

时间:2010-02-18 03:08:40

标签: winapi com graphics windows-mobile mfc

我有一个进程A,它生成要在屏幕上绘制的HBITMAP GDI对象。我有另一个进程B想要显示进程A创建的图像内容。

我计划使用点对点消息队列或使用其他消息传递进行通信/通话;并使用共享内存(以及互斥和/或事件)来共享数据。

如何共享图像数据?我读到here,GDI对象的句柄不能保证在进程间共享。使用文件共享并不是一个真正的选择,因为图像不断变化(但如果没有别的办法,我仍然会考虑它。)

添加更多成分,过程A使用eVC4(PPC2003 SDK)编写,过程B使用VS2005(WM 6 Pro SDK)编写。我有两个应用程序的工作源代码,所以我可以对这两个应用程序进行一些修改但暂时不将app A迁移到VS2005。

COM IImage是一个选项吗?

我更喜欢原生代码,但也考虑托管代码。

1 个答案:

答案 0 :(得分:2)

CreateDIBSection与共享内存对象HANDLE一起用作节句柄。您从CreateDIBSection返回的HBITMAP可能无法与其他进程共享(我不知道),但如果另一个进程ALSO从同一共享内存对象创建DIB节,则将共享位图位。