Pregunta

Tengo problemas con algún código para crear una ventana basada en CDialog. El código funcionaba bien la semana pasada. Los únicos cambios que hice fue reemplazar una deque de C ++ con una matriz hash. Había comentado la línea de código con el método Crear llamado para permitirme omitir la carga de la ventana. Ahora el código ya no crea la ventana.

La función Crear devuelve falso y la función GetLastError devuelve 0. No uso ningún control personalizado dentro de la ventana, solo una casilla de verificación y un control de lista. Por lo que puedo decir (no puedo conectar un depurador en este momento) las funciones OnCreate y OnInitDialog no están siendo llamadas en absoluto.

He pegado el siguiente código que he estado usando para probar el retorno de la función Crear y GetLastError

BOOL result = ORDER_HANDLER_GUI.Create(OrderHandlerGUI::IDD, AfxGetMainWnd());
int error = ::GetLastError();

if(result)
    AfxMessageBox("Created GUI");
else
{
    CString msg;
    msg.Format("%d", error);
    AfxMessageBox("Could not create GUI");
    AfxMessageBox(msg);
}

Actualización: Finalmente logré conectar el depurador (este es un complemento cargado en una aplicación de terceros que no le gustó el depurador por alguna razón). Después de recorrer el código, parece que AfxGetMainWnd () está devolviendo NULL. Estoy haciendo más pruebas sobre esto ahora.

¿Fue útil?

Solución

Los problemas parecen haber sido con la llamada a CDynLinkLibrary ().

Había comentado esto a pedido de la compañía que escribe el software que está cargando mi complemento. Agregar esta línea nuevamente causó que algunos valores aún fueran nulos, pero la ventana ahora se creó correctamente.

Voy a investigar un poco sobre esto y lo actualizaré si encuentro algo. Si alguien sabe más sobre esto que yo (no es difícil de hacer), siéntase libre de dejar comentarios.

Otros consejos

¿Utiliza el cuadro de diálogo algún control que pueda estar causando el problema? ¿Un rico por ejemplo?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top