Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我一直在阅读当您为共享库进行一些初始化时会发生什么。这个概念很好,但我不清楚内存是如何分配的以及它在程序中的范围。
以在堆栈或堆上的 DLLMain(无论是 process_attach 还是 thread_attach)中创建一个整数为例。该整数是在程序的全局范围内还是在其他地方?例如,如果我在 DLLMain 中新建一个整数,它是否可以在程序中全局访问,或者只是专门针对 main 或其他一些奇怪的情况?如果它可以在全局范围内访问,这是否意味着所有线程也可以访问该内存?
谢谢你的帮助。
任何知道其地址的线程都可以访问它。所有线程都具有相同的虚拟内存视图。它来自什么分配器并不重要,因为一旦它被映射到虚拟内存中,所有内存的行为都是一样的。