No hay ninguna función con este nombre en el rango del tipo de destino coincidente. El error C2440 "static_cast" no se puede convertir de "void (__thiscall C *)

 error C2440: "static_cast": no del "void (__thiscall CDataStatistics :: *) (CMenu *, UINT, bool)" se convierte en "void (__thiscall CWnd :: *) (CMenu *, UINT, BOOL)"
  desarrollado por la plataforma Cuando VC6.0 se actualiza a una versión superior a VS2005, es necesario migrar el proyecto original y se pueden encontrar errores similares:

error C2440: "static_cast" no se puede utilizar desde "void (__thiscall C *) (void) ...

Las versiones posteriores a VS2005 tienen inspecciones de mensajes más estrictas. La asignación de mensajes que anteriormente funcionaba completamente en VC6
no se pudo compilar en VS2005. El valor de retorno de OnMyMessage debe ser LRESULT en el formato: afx_msg LRESULT OnMyMessage (WPARAM, LPARAM); si no En caso afirmativo, aparecerá un mensaje de error: la
solución es la siguiente:

Primero, cambie el tipo de valor de retorno de la función de mensaje original a LRESULT, y puede escribir un retorno TRUE en la función; 

Luego, los parámetros de la función de mensaje deben reescribirse como (WPARAM wParam, LPARAM lParam) independientemente de si estos dos parámetros se utilizan o no;

Finalmente, el mapeo de mensajes como ON_MESSAGE (WM_message, & OnMyMessage).

 

En el archivo de encabezado:

afx_msg LRESULT OnOnRobotInit (WPARAM wParam, LPARAM lParam);
    afx_msg LRESULT OnOtherPartInit (WPARAM wParam, LPARAM lParam);

 

En el archivo cpp:
BEGIN_MESSAGE_MAP (CInitDeviceDlg, CDialog)

// { {AFX_MSG_MAP (CInitDeviceDlg)
    // ON_BN_CLICKED (IDC_BUTTON1, OnOnRobotInit) // -------------
    ttttt ON_MESSAGE (IDC_BUTTON1, OnOnRobotInit)                  // 改成 这样
    // ON_BN_CLICKEDPart2, IDC_BUTTON ) // ---------------
    ttttt ON_MESSAGE (IDC_BUTTON2, OnOtherPartInit)             // 改成 这样
    ON_WM_CLOSE ()
    //}} AFX_MSG_MAP
END_MESSAGE_MAP ()

// int CInitDeviceDlg :: OnOnRobotInit () 

//
LRESULT CInitDeviceDlg :: OnOnRobotInit (WPARAM wParam, LPARAM lParam) en el cuerpo de la  función

{

}

Supongo que te gusta

Origin blog.csdn.net/txwtech/article/details/105418740
Recomendado
Clasificación