Lut 'All
ca fait un bout de temp que jcherche comment appeller une fonction depuis son adresse memoire , sans rien trouver de bien precis .
Voila si quelqu'un pourrais m'expliquer un peu ca ;
mERCI
Lut 'All
ca fait un bout de temp que jcherche comment appeller une fonction depuis son adresse memoire , sans rien trouver de bien precis .
Voila si quelqu'un pourrais m'expliquer un peu ca ;
mERCI
Salut!
L'opérateur @ te permet d'avoir l'adresse de ce que tu cherches.
Par exemple :
Si tu veux faire le chemin inverse (appeller la procedure par son adresse) tu dois transtyper le pointer en procedure et pour faire ça du devras déclarer le type de la procédure appellée (signature).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var Ptr: Pointer; begin Ptr := @MaProcedure; //Ptr contient désormais l'adresse de MaProcedure end;
J'y vais de mémoire :
Bon dev!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 type TMaProc = procedure(MonParam: string); procedure MaProcedure(MonParam: string); begin //Instructions end; procedure AppellerProcedureParAdresse(Adresse: Pointer); var MaProc: TMaProc; begin MaProc := TMaProc(Adresse); MaProc('salut'); end;
-Slimjoe
Un conseil quand même : Eviter ces manipulations qui produisent un code tarabiscoté, difficile à maintenir et finalement peu efficace.
....................................................................
Aidez-vous... Dieu vous aideras et nous aussi..
....................................................................
Envoyé par Bejaia-In
Parfaitement d'accord!
-Slimjoe
Merci
que veux tu faire exactement????Envoyé par Hitchigo
PAS DE DESTIN, C'EST CE QUE NOUS FAISONS
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager