![]() |
1
6
用于创建COM分配专用堆的Windows,COTASKMeMalAccess()直接从它分配。但是,在Win8中被丢弃,它现在从默认进程堆中分配,GETPROCESSHEP()返回它。VS2012的微软CRT也被改变了,用于拥有自己的堆,但是现在也使用了默认的进程堆。 这些改变的确切原因对我来说是模糊不清的,我从来没有看到一个好的解释。但也不太可能与winrt(又名uwp,又名windows store,又名modern ui)有关。在引擎盖下提供大量的语言运行时集成。或者只是为了避开这些不同的堆经常引起的麻烦。特别是CRT堆是一个DLL地狱噩梦,程序失败,当他们在一个新的VS版本重建,但仍然使用旧DLL。 |
![]() |
2
3
我对这个问题的回答是: 我不知道也不在乎 .
你什么
做
不过,必须遵守规则。COM(和COM对象)可以自由地分配它们所选择的任何内存,并且您可以假设它们在何处或如何使用它们是危险的和不必要的。也许,最终,它最终通过
客户端的内存分配(通过)
无论如何-永远-对于任何特定的api,阅读文档,你应该没事。 |