J'ai une classe abstraite dans ma DLL.Puis-je changer d'interface dll sans recompilation exe-fichier?
class Base {
virtual char * First() = 0;
virtual char * Second() = 0;
virtual char * Third() = 0;
};
Cette bibliothèque dinamique et cette interface sont utilisées depuis longtemps. Il y a une erreur dans mon code. Maintenant, je veux changer cette interface
class Base {
virtual const char * First() const = 0;
virtual const char * Second() = 0;
virtual char * Third() const = 0;
};
Un programme EXE utilise ma DLL. Est-ce que le programme EXE fonctionnera sans recompilation? Envisager des modifications dans chaque ligne de nouvelle interface indépendamment.
Remarque: bien sûr, programme-EXE ne change pas les résultats des fonctions.
Vous écrivez "la convention d'appel ne dépend pas de la qualification cv". Telle est la question. Est ce bien? –
C'est pour Win32. 'this' est passé dans ECX que ce soit const ou non, et un retour' char * 'est dans EAX, que ce soit const ou non. Mais cela ne suffit pas pour que la liaison fonctionne. Comme je le dis, je ne connais pas les vtables de MSVC, et je ne connais pas non plus la convention d'appel Win64 (si vous avez une version 64 bits). –
Pourquoi seul le quatrième homme a compris ma question? - rhétorique. –