【发布时间】:2011-09-09 17:16:58
【问题描述】:
我有一个可以在 Windows 上同时启动多次的应用程序。
在这个应用程序中,一开始我们调用 GlobalAllocPtr() 来分配内存,如下所示:
// allocate a structure
LPSlcDataMgr lpMgr = (LPSlcDataMgr)GlobalAllocPtr(GHND, sizeof(TSlcDataMgr));
我们在两台机器上测试过(都是XP Professional 2002,一台是SP2,另一台是SP3) 但是在 SP3 上,我们的应用程序会随机崩溃
经过调查,我们发现:
- 在 SP3 上,
GlobalAllocPtr()始终为不同的应用程序进程返回相同的地址 - 但是在SP2上没问题,为每个进程返回不同的地址
在 WinXP SP3 上返回相同地址的GlobalAllocPtr() 是否可能是我们崩溃的直接或间接原因?
提前致谢。
【问题讨论】: