2010-01-21 5 views
1

I ont les éléments suivants dans une structure:
- nom Dll (chemin d'accès absolu/relatif)
- Nom de la fonction dans la DLL
- nombre de paramètres
- Tableau de types de paramètres et valeursAppeler une fonction dll sur la base de paramètres variables

Avec cette information, j'ai besoin de charger la DLL et appeler la fonction.
Pour charger la DLL, j'utiliserais LoadLibrary.
Pour obtenir l'adresse de la fonction j'utiliserais GetProcAddress.
Appelez la fonction.
Pour décharger la DLL, FreeLibrary

Étant donné que le nombre d'arguments de la fonction est dynamique, je ne suis pas sûr de la façon dont les arguments doivent être transmis à la fonction.

Quelqu'un peut-il fournir des détails sur la façon dont les paramètres peuvent être transmis à la fonction dll?

Merci et salutations, V Karthick

Répondre

0

Est-il possible de passer l'objet dictionnaire (l'un des paramètres) à une fonction d'emballage et ont cette fonction d'emballage appeler la fonction réelle? Cela vous épargnerait probablement beaucoup de maux de tête et vous pourriez potentiellement utiliser le préprocesseur pour générer les fonctions d'encapsulation pour vous.

+0

Je ne suis pas sûr de savoir comment la fonction wrapper appellera la DLL finale. Les combinaisons possibles seraient énormes - en considérant un maximum de 10 paramètres et types de paramètres à int, float et string. – Karthick

+0

L'idée serait d'écrire la fonction wrapper dans la DLL elle-même. De cette façon, le wrapper sait à quoi s'attendre dans le dictionnaire et sait comment les allouer. –

+0

J'ai le même problème. Le problème, cependant, est que la DLL est complètement arbitraire. Je veux quelque chose qui fonctionne pour toutes les DLLs - celles que j'ai faites, et celles que je ne fais pas ... Je pense que c'est aussi le problème de @ Karthick. – Codesmith

Questions connexes