Вопрос

Я работаю над проектом в QT с компилятором MSVC2008, как говорится в заголовке.

Пример кода, с которым я пытаюсь работать, использует AFX_MAPS, и, насколько я могу судить (у меня нет подсказки, как работает AFX), код ниже означает, что когда сообщение WM_PI_RAWDATA_READY получено (получено ( Я понятия не имею, где или как это получено), функция OnRawDataready запускается.

//{{AFX_MSG_MAP(CPDImfcDlg)
ON_MESSAGE(WM_PI_RAWDATA_READY, OnRawDataReady )
//}}AFX_MSG_MAP

Я попытался скопировать код в свой проект, а затем добавил #include в заголовок, но он дает мне следующую ошибку:

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]

Исправления, которые я нашел в другом месте для этого, кажутся настройками проекта в Visual Studio, поэтому я не уверен, как это обойти.

Есть идеи о том, как это исправить, или как обойти вещи AFX_MSG?

Большое спасибо

Это было полезно?

Решение

Как насчет того, чтобы просто сделать то, что сказано в сообщении об ошибке, и #defineв _AFXDLL Препроцессорный символ. В зависимости от вашей среды сборки, вам просто нужно добавить ее в командную строку Cellier в качестве аргумента (/D_AFXDLL, если я правильно помню). Но когда вы работаете с QT, у вас, вероятно, есть файл *.pro в любом случае и просто можете добавить его там (используя DEFINES переменная). Так что просто добавьте вам эту строку *.pro файл

DEFINES += _AFXDLL

Но просто интеграция кода MFC в приложение QT (которые представляют собой две совершенно разные библиотеки абстракции GUI и ОС) не будет слишком помогать, поскольку они оба не будут работать вместе, не чтобы говорить о проблеме дизайна. Возможно, вы можете перенести приложение из MFC в QT.

Другие советы

В основном говорится, что вы должны использовать статические библиотеки или DLL. Вы не можете смешать.

Как вы говорите, это часть настройки проекта.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top