CRT heap是否能有多个?

Windows内核调试

CRT heap是否能有多个?


Thomson 2008-12-02, 11:30 上午
一个进程里面的exe 和 dll如果都是static link到 crt的, 那么在exe 和 dll里面用new操作的堆是不是不一样?

Re: CRT heap是否能有多个?


手语 2008-12-02, 14:06 下午
使用的是同一个CRT堆。
CRT堆是在EXE启动的时候(main之前)被初始化的。
鸿鹄安知燕雀之志

Re: CRT heap是否能有多个?


格蠹老雷 2008-12-02, 17:58 下午
手语,你的意见值得商榷^_^
如果都是静态链接CRT的,那么它们会各自有自己的CRT 堆实例,例如:
0:000> dd FaultDll!_crtheap l1
10039838 003c0000
0:000> dd FaultApp!_crtheap l1
0042e938 003d0000
在23章的原稿中,有一节专门讨论一个因为使用不同实例而出错的案例,压缩篇幅时删掉了(:-(),过几天会作为“书友活动”的奖品把电子版本发给大家。

Re: CRT heap是否能有多个?


手语 2008-12-02, 18:25 下午
哦,原来如此
是我搞错了,谢谢老雷指点

希望快点得到删减的内容 ^_^

鸿鹄安知燕雀之志

Powered by Community Server Powered by CnForums.Net