2011-10-14 4 views
1

J'ai un pointeur de fonction dans un fichier dll (en implémentation, pas en-tête). Comment puis-je appeler la fonction pointée par ce pointeur dans le code source exe?Exportation d'un pointeur de fonction à partir de la DLL

+0

Si elle est déclarée avec une portée mondiale, alors vous pouvez simplement exporter directement la variable. C'est assez ouvert aux abus cependant. –

+0

comment en abuser, de quelle manière? –

+0

Ce n'est pas très bien encapsulé. Mais il est parfaitement normal et commun d'exporter des variables à partir de DLL. Et un pointeur de fonction est juste une variable. –

Répondre

2

Vous pouvez exporter une fonction renvoyant le pointeur. tête:

typedef void (*MyPtr)(); 

__declspec(dllexport) MyPtr GetMyPtr(); 

Source:

MyPtr GetMyPtr() 
{ 
    //retunr the function pointer here 
} 
+1

Ou mieux et plus flexible, remplissez une structure de pointeurs de fonction passés par un pointeur. –

Questions connexes