2011-04-05 111 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