[VB] Est-il possible de faire des pointeurs de fonction en VB ?

Est-il possible de faire des pointeurs de fonction en VB ? [VB] - Programmation

Marsh Posté le 19-10-2001 à 23:57:36    

Est-il possible de faire des pointeurs de fonction en VB ???
Et si oui comment on fait ???
(VB  :kaola: Delphi  :love: )


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 19-10-2001 à 23:57:36   

Reply

Marsh Posté le 20-10-2001 à 20:09:05    

Tout a fait possible, avec le mot clé "AdressOf", voici un exemple qui permet de creer un timer (plus précis que celui de VB mais plus critique) :  
 
' dans un module
' l'api
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
 
' Notre fonction callback, nous utiliserons adressof pour le paramettre lpTimerFunc de l'api (pointeur sur fonction)
Public Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
 
' mettre son code
 
end sub
 
' dans le form
Private sub Form_Load()
 
' On utilise un pointeur sur fonction en 4 eme paramettre pour l'API
SetTimer Me.hwnd, 0, 1000, AddressOf TimerProc
 
End sub
 
 
Si tu veux utiliser des pointeurs tout court, tu peux utiliser VarPtr, StrPtr et ObjPtr. J'ai trouvé une petite finte pour les utiliser qui consiste a copier le contenu du pointeur vers une variable avec "RtlMoveMemory" (plus connu sous le nom de CopyMemory).

Reply

Marsh Posté le 21-10-2001 à 11:01:50    

Et pour faire un tableau de pointeurs de fonction ?
(En fait C ça que je veux faire)

 

[edtdd]--Message édité par [SDF]Poire--[/edtdd]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 21-10-2001 à 19:51:56    

C'est théoriquement impossible, mais j'ai vu sur www.mvps.org, un article tres interessant (et tres chaud) permettant d'utiliser ce qu'on appel les vecteurs (amateur du C++ ;).
Leur exemple permettait d'ajouter, supprimer un pointeur dans ce vecteur, ce qui revient a un :
 
vector <PROPVECT> gs_PropsIn;  // Propvect = renvoye pointeur sur struct
 
gs_PropsIn.push_back ( le pointeur );
 
L'idée est d'implémenter cette méthode du C++ à VB ... bon courage !

Reply

Marsh Posté le 21-10-2001 à 21:04:23    

Ce que tu peux faire en VB est définir une interface (clase de base) qui définit une méthode puis des interfaces qui en hérite en spécialisant la méthode (=tes fonctions) et enfin une collection d'objets interface de base (que tu instancies avec des classes de spécialisation).

 

[edtdd]--Message édité par Verdoux--[/edtdd]

Reply

Marsh Posté le 23-10-2001 à 20:02:32    

KarLKoX a écrit a écrit :

C'est théoriquement impossible, mais j'ai vu sur www.mvps.org, un article tres interessant (et tres chaud) permettant d'utiliser ce qu'on appel les vecteurs (amateur du C++ ;).
Leur exemple permettait d'ajouter, supprimer un pointeur dans ce vecteur, ce qui revient a un :
 
vector <PROPVECT> gs_PropsIn;  // Propvect = renvoye pointeur sur struct
 
gs_PropsIn.push_back ( le pointeur );
 
L'idée est d'implémenter cette méthode du C++ à VB ... bon courage !  




Moi je fais des tableau de pointeurs de fonction en C sans pb !!! :D


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 23-10-2001 à 20:03:46    

Verdoux a écrit a écrit :

Ce que tu peux faire en VB est définir une interface (clase de base) qui définit une méthode puis des interfaces qui en hérite en spécialisant la méthode (=tes fonctions) et enfin une collection d'objets interface de base (que tu instancies avec des classes de spécialisation).  
 
 




Non C pas ça !!!  :cry:  :cry:  :cry:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 23-10-2001 à 20:40:19    

Et bien pourquoi ne ferais tu pas une DLL qui exporterais ta méthode en C, méthode que tu appelerais depuis VB ? Ca peut etre une solution.

Reply

Marsh Posté le 23-10-2001 à 20:47:48    

C pas possible car C pour un script (pas VB script script pour bot sur DC)....  :cry:  :cry:  :cry:

 

[edtdd]--Message édité par [SDF]Poire--[/edtdd]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 26-10-2001 à 22:58:40    

Up :bounce:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed