我有一个进程A,它生成要在屏幕上绘制的HBITMAP GDI对象。我有另一个进程B,它想要显示进程A创建的图像的内容。
我计划使用点对点消息队列或其他消息传递来进行通信/对话;并使用共享内存(以及互斥和/或事件)来共享数据。
如何共享图片数据?我在here上读到,GDI对象的句柄不能保证在进程间共享。使用文件共享并不是一个真正的选择,因为图像不断变化(但如果没有其他方法,我仍然会考虑这样做)。
此外,流程A是使用eVC4 (PPC2003 SDK)编写的,而流程B是使用VS2005 (WM 6 Pro SDK)编写的。我有两个应用程序的工作源代码,所以我可以对这两个程序进行一些修改,但暂时不会将应用程序A迁移到VS2005。
COM IImage是一个选项吗?
我更喜欢本机代码,但也考虑托管代码。
发布于 2010-02-18 11:14:59
使用带有共享内存对象句柄的CreateDIBSection作为节句柄。您从CreateDIBSection返回的HBITMAP可能不能与其他进程共享(我不知道),但如果其他进程也从相同的共享内存对象创建了一个DIB部分,那么位图位将被共享。
https://stackoverflow.com/questions/2286037
复制相似问题