2

J'ai besoin d'aide avec un ancien code C++ de/pour DLL qui a été écrit dans borland C++ builder 6, je dois le recompiler dans VS2008 ou VS2010. Puisque tous nos tests ont montré que MSVC optimise le code plus de 4 fois mieux (pour la vitesse), alors borland builder fait ... Et notre logiciel a des exigences en temps réel. J'ai réécrit et/ou emballé beaucoup de code VCL avec std ou win32api fonctions principalement des classes pour AnsiString, événements, discussions, listes, donc la plupart du code compile et fonctionne bien ...Portage du code DLL de Borland C++ Builder 6 vers Microsoft Visual C

Mais je suis arrivé à une barrière que je ne sais pas comment résoudre seul, alors je vous en supplie pour toute sorte d'aide. Je n'ai aucune idée comment je peux mettre en œuvre quelque chose qui pourrait simuler __closure mot-clé. Je sais que c'est un mot-clé spécifique au constructeur borland C++ et permet au programmeur d'utiliser un pointeur générique pour la fonction membre. Je sais que ce n'est pas possible en C++ natif, puisque le pointeur sur la fonction membre n'est pas un pointeur de fonction normal, mais quelque chose comme member_function_pointer=function_pointer-this. Donc, __closure doit enregistrer this et member_function_pointer. Mais je ne sais pas comment y parvenir. Et comment cela pourrait-il être possible puisque les classes de notre code ne se connaissent pas et que cela viole tous les principes des principes de programmation orientés objet.

Je suis désolé pour mon anglais rouillé: S Nous vous remercions de votre temps et de votre aide.

Répondre

Questions connexes