(Gelöst) Funktions Pointer über Funktionsname erhalten.

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Acia6850
Beiträge: 65
Registriert: Mo 9. Okt 2023, 18:45
OS, Lazarus, FPC: Windows + WSL / Linux Debian Rasbian OS (L 3.4.0 FPC 3.2.3)
CPU-Target: 64Bit
Wohnort: LK Ludwigsburg

(Gelöst) Funktions Pointer über Funktionsname erhalten.

Beitrag von Acia6850 »

Hallo,

bei einer dynamischen Bindung einer Dll Funktion bekommt man den Funktionspointer über den Funktionsnamen mit der Funktion GetProcAddress.

Gibt es eine Function mit der man den Funktionspointer ohne dynamischen Bindung einer Dll Funktion in einer FP-Unit mit dem Funktionsnahmen erhalten kann.


Ich möchte den Funktionspointer über ein Array von Funktionsnamen automatisch im Code erzeugen und die Funktion über den Pointer aufrufen.


Vielen Dank für eure Infos.

Grüsse Acia6850
Zuletzt geändert von Acia6850 am So 24. Mai 2026, 18:41, insgesamt 1-mal geändert.

Mathias
Beiträge: 7298
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Funktions Pointer über Funktionsname erhalten.

Beitrag von Mathias »

Ich möchte den Funktionspointer über ein Array von Funktionsnamen automatisch im Code erzeugen und die Funktion über den Pointer aufrufen.
Meinst du sowas ähnliches wie es bei modernen OpenGL der Fall ist ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 2301
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Funktions Pointer über Funktionsname erhalten.

Beitrag von Warf »

Für Typen gibt es Runtime Type Information (RTTI) worüber man die Methoden von Objekten finden kann. Für normale Funktionen gibts sowas soweit ich weiß nicht direkt. Du könntest natürlich die Debug Infos des eigenen Programms auslesen. Aber selbst das ist nicht unbedingt garantiert da nicht jede Funktion die man schreibt im Kompilat auch vorhanden ist (smart linking, Inlining, etc.)

Einfacher ists aber wenn du einfach einen statischen array anlegst mit allen funktionspointern anzulegen. Entweder manuell pflegen oder automatisiert erzeugen lassen

Acia6850
Beiträge: 65
Registriert: Mo 9. Okt 2023, 18:45
OS, Lazarus, FPC: Windows + WSL / Linux Debian Rasbian OS (L 3.4.0 FPC 3.2.3)
CPU-Target: 64Bit
Wohnort: LK Ludwigsburg

Re: Funktions Pointer über Funktionsname erhalten.

Beitrag von Acia6850 »

Vielen Dank für die schnelle Hilfe.
Ich werde es mit einem statisch Array machen.

Grüsse Acia6850

Antworten