Error de análisis: "afx_msg" esperado. Aparece la línea de entrada: "DECLARE_MESSAGE_MAP()" en VC++.
//{{AFX_MSG(CMyimageDoc)
público:
afx_msg void OnStart();
afx_msg void Onsavefile();
afx_msg void OnStop();
protegido:
afx_msg void OnFileSaveAs()
afx_msg void OnFileSave(); p>
p>
afx_msg void OnOriginalimage();
afx_msg void OnOriginalimage();
afx_msg void Onopenfile(); /}}AFX_MSG
DECLARE_MESSAGE_MAP()
Si intenta agregar una función virtual o una respuesta de mensaje en la clase CMyimageDoc, recibirá una ventana emergente "Error de análisis: ..." . Este error también aparecerá si abre ClassWizard. Si abre ClassWizard en una clase Ver y aparece este error, necesita averiguar qué clase tiene el problema, simplemente haga clic derecho en cada clase y agregue una función virtual (o respuesta de mensaje) para averiguar dónde está el problema. . Luego, este ejemplo debe cambiarse a
public:
//{{AFX_MSG(CLock_imageDoc)
afx_msg void OnStart();
afx_msg void Onsavefile();
afx_msg void OnStop();
afx_msg void OnFileSaveAs();
afx_msg void OnFileSave();
afx_msg void OnOriginalimage();
afx_msg void Onopenfile();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
Después de agregarlo nuevamente, no habrá problema. ClassWizard también se puede abrir sin problemas.
También puedes agregar un mensaje tú mismo, por ejemplo
public.DECLARE_MESSAGE_MAP():
//{{AFX_MSG(CLock_imageDoc)
afx_msg void OnStart();
afx_msg void Onsavefile();
afx_msg void OnStop();
afx_msg void OnFileSaveAs(); >
afx_msg void OnFileSave();
afx_msg void OnOriginalimage();
afx_msg void OnOriginalimage()
afx_msg void Onopenfile();
afx_msg void OnmyMessage(); /////////// Respuesta del mensaje correspondiente al mensaje que agregaste
//}}AFX_MSG
DECLARE_MESSAGE_MAP( )<
En este momento, ClassWizard también mostrará "Error de análisis:...".
Público:
//{{AFX_MSG( CLock_imageDoc)
afx_msg void OnStart();
afx_msg void Onsavefile();
afx_msg void OnSavefile();
afx_msg void OnStop()
afx_msg void OnSavefile();
afx_msg void OnStop();
afx_msg void OnFileSaveAs(); ();
afx_msg void OnOriginalimage();
afx_msg void Onopenfile();
//}}AFX_MSG
afx_msg void OnmyMessage(); /////////// Respuesta del mensaje correspondiente al mensaje que usted mismo agregó (póngalo afuera //}}AFX_MSG para que funcione correctamente)
DECLARE_ MESSAGE_MAP() p>
De esta forma no habrá errores.
Existe un tipo especial de comentario en MFC llamado macro de comentarios. VC generalmente agrega automáticamente las macros de comentarios al código. Está destinado a ClassWizards, que lo utilizan para localizar dónde varios sistemas agregan código automáticamente. Si desea utilizar ClassWizard para agregar variables miembro y funciones miembro, deje la macro comentada; de lo contrario, deberá agregarlas manualmente; Si elimina la macro de comentarios, ClassWizard no podrá generar código automáticamente. Cuando agregaste la respuesta al mensaje, ¿te diste cuenta de que había más código en el código fuente? ¿Por qué no está en otros archivos? Esto se debe a que hay una macro de comentarios que genera código entre las macros de comentarios correspondientes. (Los comentarios son para que ClassWizard pueda distinguir qué código generó y cuál escribió usted mismo. Su propio código debe estar fuera de los comentarios para que ClassWizard no se preocupe por su código cuando modifica el mapa de mensajes. (Más La nueva versión de vc ( vs) ya no tiene macros de comentarios)
.