У меня есть приложение, которое можно запускать несколько раз одновременно в Windows.
В этом приложении в начале мы вызываем GlobalAllocPtr () для выделения памяти, как показано ниже:
// allocate a structure
LPSlcDataMgr lpMgr = (LPSlcDataMgr)GlobalAllocPtr(GHND, sizeof(TSlcDataMgr));
Мы тестировали на двух машинах (оба XP Professional 2002, одна SP2, другая SP3)
но на SP3 наши приложения будут зависать случайно
После расследования мы обнаружили:
- в SP3,
GlobalAllocPtr()
всегда возвращает один и тот же адрес для разных процессов приложения
- но на SP2 все нормально, возвращайте разные адреса для каждого процесса
Возможно ли, что GlobalAllocPtr()
, возвращающий тот же адрес в WinXP SP3, будет прямой или косвенной причиной нашего сбоя?
Заранее спасибо.