I have written a DLL as part of a keylogging program. It contains the callback function for a global hook. It writes the keys to a buffer. However, when the function is called it writes to a different copy of the buffer for each program. Other variables also behave like this. I think I need to create a shared segment in the DLL, but all the instructions I have found to do this seem to have no effect. I am using Borland C++ 5.02 running on Windows ME. I would be grateful for any suggestions, or methods to work around this without writing to files.