2011-04-05 103 views
0

我正在GetBitmapBits()通过一个HBITMAP并存储在一个普通char*缓冲器中的像素和发送通过网络该缓冲器。通过网络传输GetBitmapBits(),安全吗?

客户端然后“重建”在其窗口中使用SetBitmapBits()该位图。

我的问题很简单:是否有任何可能或可能发生的情况时,重建也许是不可能的?也许这些像素数据的内部字节存储格式?

客户端和服务器不保证使用相同版本的Windows。服务器可能使用XP,而客户端可能使用Vista或Windows 7。

回答

1

的文档上GetBitmapBits本身提到你应该使用的GetDIBits/SetDIBits来代替。

2

除了克里斯的建议,你应该使用GetDIBits,我可以补充一点:

  1. 由于文档要么功能不具有兼容性的担忧任何明确的警告,你可以假设目前还没有任何 - 实际上,如果DIB的内存表示在不同版本之间改变,则可以确定许多程序会立即采取进攻措施。
  2. 因为所有你做的是通过网络推char S,也不能因您的源和目标系统之间可能存在的不同字节从所产生的任何问题。
+0

GetBitmapBits明确地说,该格式是设备特定的。因此它将取决于在该设备中选择的当前视频模式以及正在使用的实际设备驱动程序。 – 2011-04-05 12:30:35

+0

@ChrisBecke:这就是为什么建议使用'GetDIBits'来代替;正如名字所暗示的那样,这个设备是独立的。 – Jon 2011-04-05 13:11:21