Передача GetBitmapBits () по сети, безопасно? - PullRequest
0 голосов
/ 05 апреля 2011

Я делаю GetBitmapBits() над HBITMAP и сохраняю пиксели в обычном char* буфере и отправляю этот буфер по сети.

Затем клиент «восстанавливает» растровое изображение, используя SetBitmapBits() в своем окне.

Мой вопрос довольно прост: есть ли вероятная или возможная ситуация, когда реконструкция может быть невозможна? Может быть, для внутреннего байтового формата этих данных пикселей?

Клиент и сервер не гарантированно используют одну и ту же версию Windows. Сервер может использовать XP, в то время как клиент может использовать Vista или Windows 7, например.

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Помимо предложения Криса, что вы должны использовать GetDIBits, я могу добавить, что:

  1. Поскольку в документации по любой функции нет никаких явных предупреждений о совместимостиВы можете предположить, что их нет - действительно, если представление DIB в памяти изменялось между версиями, вы можете быть уверены, что многие программы сразу же обидятся.
  2. Поскольку все, что вы делаете, это нажимаете char s по сети, не может быть никаких проблем, связанных с этим, из-за возможного различного порядкового номера между вашей исходной и целевой системами.
1 голос
/ 05 апреля 2011

Документация по GetBitmapBits сама упоминает, что вы должны использовать вместо нее GetDIBits / SetDIBits.

...