es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cargar la biblioteca DLL en tiempo de ejecución con /MT +Unicode en una aplicación con /MD +Multibyte?

Mi programa principal se construye con la marca /MD y el conjunto de caracteres “Multi-Byte”. Tengo otra biblioteca, que se construye con la marca /MT y el conjunto de caracteres “Unicode”, que me gustaría utilizar en mi programa. Ni el programa principal ni la biblioteca se pueden reconfigurar sin una cantidad excesiva de trabajo y mantenimiento.

Ahora bien, sé que no puedo enlazar la biblioteca convencionalmente, pero ¿qué sucede si exporto algunas funciones de la biblioteca, luego la cargo durante la ejecución utilizando LoadLibrary y GetProcAddress, y luego llamo a esas funciones desde mi programa principal? ¿Sería seguro, siempre y cuando no desasigne memoria cruzada? ¿Alguna precaución de la que deba estar consciente?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en C++, Windows y LoadLibrary, diría que usar LoadLibrary y GetProcAddress para acceder a funciones de una biblioteca construida con una bandera y conjunto de caracteres diferentes sería una solución viable, siempre y cuando se gestione cuidadosamente la desasignación de memoria para evitar cualquier desasignación cruzada. Sin embargo, es importante tener en cuenta que este enfoque puede introducir problemas de rendimiento debido a la carga y descarga dinámica de la biblioteca en tiempo de ejecución, así como posibles problemas de compatibilidad con futuras actualizaciones de la biblioteca o del programa principal. Por lo tanto, se recomienda probar y validar exhaustivamente esta solución antes de implementarla en un entorno de producción, y considerar opciones alternativas si es posible.

Comments are closed.