Jedes Programm bekommt beim starten einen bestimmten Teil des Arbeitsspeichers zugewiesen, der jedesmal anders sein kann.
Die Funktionen des Programms bekommen allerdings immer die Gleiche "Hausnummer" innerhalb des Programms zugewiesen.
Beispiel:
Der Arbeitsspeicher ist ein Schachbrett

Nun startet dein Programm und bekommt den Speicherabschnitt von C-E.
Das Handle des Programms ist nun C.
Dazu muss nun das Offset deiner Funktion/Value addiert werden um die Exakte Adresse zu bekommen.
Das Offset kann nun z.B. 3 sein.
Also ist die Exakte Adresse C + 3, also C3 in deinem Arbeitsspeicher.