Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!husc6!spdcc!mirror!jvc From: jvc@mirror.UUCP (Jim Champeaux) Newsgroups: comp.windows.ms Subject: Re: Data Segments for DLL's Message-ID: <33872@mirror.UUCP> Date: 12 Dec 89 14:14:04 GMT References: <606@fred.UUCP> Reply-To: jvc@prism.TMC.COM (Jim Champeaux) Organization: Mirror Systems, Cambridge Mass. Lines: 21 In article <606@fred.UUCP> bill@fred.UUCP (Bill Poitras) writes: >Is it true that a DLL can have a heap (like for linked lists etc.)? > >If so, does a DLL create a data segment for each instance of each program >that calls the library? > >... Yes, a DLL can have a local heap. To use the local heap, however, the library must initialize it by using the LocalInit function in the library's initialization function. A DLL can have only one instance of a data segment. "In general, if a library needs to save data specific to an application, the library should allocate space in its local heap, copy the data to the allocated space, and return the data's local handle to the application. When the application wants the data back, it can supply the handle." See _Microsoft_Windows_Programmers's_Learning_Guide, Appendix C, Windows Libraries, for more information.