小编mic*_*yue的帖子

GlobalAllocPtr()始终为不同的Process返回相同的地址

我有一个可以在Windows上同时启动多次的应用程序.

在这个应用程序中,我们在开始时调用GlobalAllocPtr()来分配内存,如下所示:

// allocate a structure
LPSlcDataMgr lpMgr = (LPSlcDataMgr)GlobalAllocPtr(GHND, sizeof(TSlcDataMgr));
Run Code Online (Sandbox Code Playgroud)

我们在两台机器上测试过(两者都是XP专业版2002,一台是SP2,另一台是SP3),但在SP3上,我们的应用程序会随机崩溃

经过调查,我们发现:

  1. 在SP3上,GlobalAllocPtr()始终为不同的应用程序进程返回相同的地址
  2. 但在SP2上,没关系,为每个进程返回不同的地址

是否有可能GlobalAllocPtr()在WinXP SP3上返回相同的地址是我们崩溃的直接或间接原因?

提前致谢.

c++ windows winapi

3
推荐指数
1
解决办法
1092
查看次数

标签 统计

c++ ×1

winapi ×1

windows ×1