У нас есть приложение, написанное на VC ++ с использованием Visual Studio 2005, которое поддерживает несколько операционных систем, таких как Windows XP, Windows 2008, Windows 2003. Большую часть времени серверная часть приложения устанавливается в Windows 2003 / Windows 2008 иКлиентская часть устанавливается на Windows XP.Клиент и сервер взаимодействуют через именованные каналы.
На стороне клиента мы создали структуру C ++ и отправили ее на сервер в виде сообщения IPC.Когда мы объявляем structre в функции и не инициализируем ее, она достигает сервера от некоторых клиентов, в то время как от других клиентов этого не происходит.Клиенты устанавливаются на разных компьютерах с Windows XP.
Теперь, если я вызову функцию ZeroMemory()
для этой структуры и инициализирую ее нулем, сообщение IPC достигнет сервера от всех клиентов.Вопрос в том, почему унитарная структура работает на одной машине, а не на другой?Мне очень интересно, как операционные системы автоматически инициализируют неинициализированные структуры.