Visual C++ .NET - Ayuda con Dll y Editor de Recursos

 
Vista:

Ayuda con Dll y Editor de Recursos

Publicado por Kentaroh (1 intervención) el 05/08/2007 14:53:04
buenas, llevo un par de dias investigando sobre realizar dll en visual c++, finalmente comencé a hacerlo y realicé una, que muestra un CDialog.
El objetivo es poder cargar esta dll desde una herramienta externa (Magic Edeveloper) y actuar sobre dicho CDialog.
Pues bien, el proceso va correcto y muestra desde dicha herramienta el formulario, con sus campos y todo, pero es como si no funcionara, es decir,se hace click en el boton por ejemplo y no se muestra como se pulsa, no puede situarse en los camps de texto, etc.

pues investigando, parece que hay un bug cuando se usa un Cdialog como Child. Y al parecer se puede solucionar creado tus propias clases heredando de las necesarias (CButton, etc). Pero esto ya no pude probarlo pues desde el editor de recursos, con el proyecto de dll, no deja asignar por ejemplo al botón, una variable, entonces no puedo probar esto ultimo a ver si se solucionara, mas que nada, porque no se activa en el menu contextual el campo de Agregar Variable.

Entonces, mi pregunta tras todo el rollo es: Crear Dialogos en DLL tiene restricciones? Habría un modo mejor de hacer lo que pretendo sin usar CDialog?
Alguno sabe como puede solucionarse eso de no poder pulsar el boton,no situarse en los campos,etc sin realizar otras clases?

cualquier sugerencia será bien recibida

ahora mismo la dll no tiene funcionalidad, solo tiene una funcion que es la que se llama desde Magic Edeveloper, que crea un Cwnd con el HWND que recibe la funcion,creaun CDialog con el formulario creado, y lo muestra en pantalla.

un saludo y muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problemas al utilizar CDialog como Child en una DLL

Publicado por Alejandro (265 intervenciones) el 01/02/2024 21:23:36
Kentaroh, crear diálogos en una DLL puede tener algunas restricciones, especialmente al utilizar CDialog como Child debido a posibles problemas con el manejo de eventos y controles. Aquí hay algunas sugerencias y alternativas:

1. Manejo de eventos y controles:
- En lugar de depender completamente de los controles y eventos de CDialog, puedes intentar manejar eventos directamente en tu código de DLL y comunicar los resultados a la aplicación principal.
- Utiliza clases derivadas de los controles necesarios (CButton, etc.) para personalizar su comportamiento según tus necesidades.

2. Crea clases derivadas:
- Aunque mencionaste que no puedes asignar variables desde el editor de recursos, puedes crear clases derivadas de CButton, CEdit, etc., en tu código y asignar esas clases a los controles en tiempo de ejecución en lugar de en el editor de recursos.

3. Evita CDialog como Child:
- Si los problemas persisten, considera utilizar otras opciones, como crear ventanas sin utilizar CDialog como Child. Puedes trabajar directamente con ventanas y controles de Windows API o utilizar otras bibliotecas para la interfaz de usuario.

4. Prueba con otras bibliotecas:
- Explora bibliotecas gráficas y de interfaz de usuario alternativas que pueden ser más compatibles con el entorno de desarrollo que estás utilizando (Magic Edeveloper).

5. Investiga problemas específicos:
- Investiga a fondo los problemas específicos que estás experimentando al utilizar CDialog como Child en una DLL. Puede haber soluciones específicas o parches disponibles.

6. Consulta la documentación de Magic Edeveloper:
- Consulta la documentación de Magic Edeveloper para ver si hay restricciones o recomendaciones específicas al trabajar con DLLs que contienen CDialog en su interfaz.

En resumen, mientras que crear diálogos en DLL puede tener algunas restricciones, hay varias alternativas y enfoques que puedes probar. La clave es adaptarse a las limitaciones de tu entorno de desarrollo y encontrar la solución que mejor se ajuste a tus necesidades.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar