<p>I have just been getting into low level programming (reading/writing to memory that sort of thing) and have run into an issue i cannot find an answer to.</p>

<p>The piece of information i want to read from has an address that is relative to a DLL loaded in memory e,g, it is at mydll.dll + 0x01234567. the problem im having is that the dll moves around in memory but the offset stays the same. Is there anyway to find out the location of this dll in memory.</p>

<p>I am currently trying to do this preferably in c# but i would be grateful for help in most highish level languages.</p>

From a Win32 perspective you need to use the
GetModuleHandle
and
GetModuleInformation
functions.  These let you look the module handle up by name, and then retrieve information, including the base address about that handle.
It should be straight forward to wrap these APIs using the standard P/Invoke wrappers.