Uso de AFX_MSG en QT con el compilador MSVC2008
-
28-10-2019 - |
Pregunta
Estoy trabajando en un proyecto en QT con el compilador MSVC2008, como dice el título.
El código de muestra, del que estoy tratando de trabajar, utiliza AFX_MAPS, y por lo que puedo decir (realmente no tengo idea de cómo funciona AFX), el siguiente código significa que cuando se recibe el mensaje WM_PI_RAWDATA_REEADI (( No tengo idea de dónde o cómo se recibe), se activa la función onRawdataready.
//{{AFX_MSG_MAP(CPDImfcDlg)
ON_MESSAGE(WM_PI_RAWDATA_READY, OnRawDataReady )
//}}AFX_MSG_MAP
Intenté copiar el código en mi proyecto y luego agregar #include en el encabezado, pero me da el siguiente error:
D:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\INCLUDE\afx.h:24: error: C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
Las soluciones que he encontrado en otro lugar para esto parecen ser la configuración del proyecto en Visual Studio, por lo que no estoy seguro de cómo evitarlo.
¿Alguna idea sobre cómo solucionar esto o cómo trabajar alrededor de las cosas AFX_MSG?
Muchas gracias
Solución
¿Qué hay de hacer lo que decía el mensaje de error y #define
ing el _AFXDLL
símbolo del preprocesador. Dependiendo de su entorno de compilación, solo necesita agregarlo a la línea de comandos de cumplimiento como argumento (/D_AFXDLL
, si recuerdo correctamente). Pero cuando trabaja con QT, probablemente obtenga un archivo *.pro de todos modos y puede agregarlo allí (usando el DEFINES
variable). Así que solo agregue esta línea *.pro archivo
DEFINES += _AFXDLL
Pero solo la integración del código MFC en una aplicación QT (que son dos bibliotecas de abstracción GUI y OS completamente diferentes) no será de mucha ayuda, ya que ambos no funcionarán tan bien, no hablar del problema de diseño. Quizás pueda portar la aplicación de MFC a Qt.
Otros consejos
Básicamente dice que debe usar bibliotecas estáticas o DLL. No puedes mezclar.
Como usted dice, esto es parte de la configuración del proyecto.