Hola.
Mi problema es simple. Quiero hacer una DLL para mi proyecto, quiero que ésta sea independiente, osea, que si en el futuro quiero agregar algún método en la DLL o reparar algún BUG, sólo necesite recompilar la DLL y no el ejecutable.
Para esto necesito compatibilidad binaria, se puede hacer fácilmente en las propiedades de compilación del proyecto.
Me funciona bien, hice una DLL que sólo tiene 2 métodos (suma y resta), modifico el cuerpo de esos métodos la genero con compatibilidad binaria y cuando ejecuto el exe funciona bien, pero cambian los valores que devuelven estas funciones por las modificaciones hechas.
El problema está cuando quiero hacer alguna modificación a un método ya existente, por ejemplo: agregar un argumento opcional...
Mi experiencia me dice que un argumento opcional no debería generarme problemas de incompatibilidad, pero cuando ejecuto el programa obtengo resultados extraños y se cierra inesperadamente. El problema se soluciona abriendo el proyecto del ejecutable y recompilándolo sin hacer modificaciones.
La pregunta es:
¿ Cómo debo hacer para agregar argumentos opcionales a un método de una DLL y conservar la compatibilidad binaria entre ésta y la versión anterior ?
En C++ los puntos de entradas de las funciones vienen dados por el nombre de la función y los argumentos que recibe, esto tendrá algo que ver ?
Muchas Gracias.