Copié un encabezado existente para una clase de cuadro dlg (creado con el asistente de clase dlg/asistente de mfc). Todo parecía ir bien hasta que agregué el archivo cpp al proyecto. Ahora me sale errores de enlace impares para algunos métodos mágicos MFC:Errores de enlace de clase dlg MFC para MyClass :: GetMessageMap() y MyClass :: GetRuntimeClass (MSVC 2008)
error LNK2001: sin resolver símbolo externo? "Público: struct virtuales CRuntimeClass * __thiscall DlgGapWindow :: GetRuntimeClass (void) const " (GetRuntimeClass @ DlgGapWindow @@ @@ UBEPAUCRuntimeClass XZ)
LNK2001de error: no resuelto externa símbolo "protegida: struct virtuales AFX_MSGMAP const * __thiscall DlgGapWindow :: GetMessageMap (void) const " (? GetMessageMap @ DlgGapWindow @@ @@ MBEPBUAFX_MSGMAP XZ)
Por qué sería esto?
Este es el código correspondiente en la cabecera
class DlgGapWindow : public CDialog
{
DECLARE_DYNAMIC(DlgGapWindow)
public:
DlgGapWindow(CWnd* pParent = NULL);
virtual ~DlgGapWindow();
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual BOOL OnInitDialog();
enum { IDD = IDD_DIALOG_GAP_VIEW };// Dialog Data
GapViewer m_chart;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnSizing(UINT fwSide, LPRECT pRect) ;
afx_msg void OnTimer(ONTIMER_TYPE nIDEvent);
afx_msg void OnDestroy();
afx_msg void OnClose();
afx_msg void OnActivate(UINT,CWnd *,BOOL);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
DECLARE_MESSAGE_MAP()
};
no veo nada de la clase modelé después de eso parece que falta. No he encontrado nada útil con google u otras búsquedas para indicar por qué faltan estas cosas mágicas de mfc. Mis otras clases no las definen explícitamente y no tienen errores.
El archivo RC tiene una definición correspondiente de dlg.
EDIT:
Gracias por la ayuda DECLARE_DYNAMIC - ahora no tengo la GetRuntimClass() Error - sólo el error GetMessagemap().
¿Realmente necesita 'DECLARE_DYNAMIC' macro? En caso afirmativo, ¿tiene una implementación equivalente de 'IMPLEMENT_DYNAMIC' en el archivo cpp' DlgGapWindow'? Consulte aquí para obtener información sobre 'DECLARE_DYNAMIC': http://msdn.microsoft.com/en-us/library/ywz9k63y%28VS.80%29.aspx – yasouser