Zur Bestimmung der Länge nimmst du eine Hilfsprocedure (oder einfach die darunter liegende)
Delphi-Quellcode:
procedure ToCopy;
//achte darauf, dass sie den Parametern einer ThreadFunc entsprechen muss.
...
end;
procedure nothing;
asm nop
end;
...
size_toCopy:=integer(@nothing)-integer(@toCopy);
Du darfst dann aber in ToCopy keine dynamischen Variablen und keine Funktionen verwenden.
Besser ist, du lädst eine
DLL in den anderen Speicher:
Schau mal hier In der
DP gibt es da auch ne Menge.
Edit:
Um nur ein oder zwei Funktionen zu kopieren, kannst du einen record zusammenbasteln mit Code und "globalen" Variablen, so wie ich es
hier im Record TMemory gemacht habe.
Edit2: Und die
openGL.pas brauchst du nicht zu kopieren, da die
OpenGL-Befehle in jedem Process existieren, du musst dir das
Handle zum Modul opengl32 (getmodulehandle) holen und mit getprocaddress die Einsprungadressen. Aber wenn es zu viele Funktionen sind, ist der Aufwand viel zu groß um nicht gleich auf eine
DLL umzusteigen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.