J'ai obtenu un pointeur de fonction au moment de l'exécution, disons quelque chose comme GetProcAddress (donc un void faiblement typé *), et j'ai cette métadonnée qui me dit ce que la signature de la fonction est en cours d'exécution. Comment puis-je appeler la fonction correctement, de préférence en code standard? La solution C++ 0x est très bien, et cela ne me dérange pas d'avoir à appliquer ma propre sécurité.Appel d'un pointeur de fonction avec des arguments dynamiques
Répondre
Euh ... non, vous ne pouvez pas. Il n'y a rien comme la réflexion est C++ ou C++ 0x, vous ne pouvez pas obtenir un type d'une chaîne ou autre. Malheureusement :)
Toutefois, s'il existe des limites aux signatures de fonctions, et qu'il connaît les possibilités spécifiques, n'a-t-il pas pu analyser les métadonnées et convertir le pointeur de fonction en une fonction spécifique (éventuellement surchargée) basée sur cela? – JAB
@JAB: Je devrais générer toutes les surcharges possibles avant, ce qui pourrait être des millions de permutations ou plus. – Puppy
Il est possible de faire - c'est ce que fait Excel quand il appelle XLLs. Mais vous devrez peut-être recourir à un assembleur pour le faire. – DangerMouse
- 1. pointeur de fonction avec des arguments connus
- 2. appel() de la fonction avec des arguments
- 3. Appel d'un pointeur de fonction avec Emscripten
- 4. Appel de fonction dynamique avec paramètres dynamiques en Javascript
- 5. Envoi pointeur de fonction avec des arguments avec, puis ajouter des arguments supplémentaires en invoquant
- 6. Appel d'une fonction depuis une autre fonction avec des arguments
- 7. Appel de fonction Javascript avec arguments
- 8. arguments dynamiques en fonction php
- 9. Arguments de fonction dynamiques en C++, possibles?
- 10. Appel d'une fonction avec 'arguments' comme arguments séparés
- 11. Appel d'une fonction membre avec un pointeur de fonction nue
- 12. Lua: Appel dynamique d'une fonction avec des arguments
- 13. Appel de fonction MIPS avec plus de quatre arguments
- 14. Fichiers batch avec arguments dynamiques
- 15. Comment passer des arguments de fonction avec un pointeur de fonction en Javascript
- 16. ExternalInterface-passant des arguments dynamiques à la fonction Javascript
- 17. appel de fonction n'acceptant pas mes arguments
- 18. Appel d'une cmdlet avec des arguments personnalisés
- 19. en utilisant des modèles avec des arguments de pointeur de fonction
- 20. Contournement des arguments génériques et dynamiques
- 21. appel Type.MakeGenericType() avec des arguments nuls
- 22. C/C++ - évaluation des arguments dans un appel de fonction
- 23. javascript: retour des valeurs dynamiques comme arguments
- 24. Appel de la méthode apply avec des arguments en JavaScript
- 25. pointeurs de fonction et arguments de pointeur dans C
- 26. Appel d'une fonction avec des valeurs incrémentées
- 27. Appel d'une fonction JavaScript avec des arguments qui sont décidés plus tard
- 28. arguments dynamiques pour ZINTERSTORE avec node_redis
- 29. pointeur de fonction avec des données supplémentaires
- 30. Appel de script Python avec des arguments de VBscript
Je sais semble redudant, mais, c'est la fonction de destination dans un objet partagé/bibliothèque dynamique, ou c'est le même programme? – umlcat
@umlcat: Aucune idée. – Puppy