Попытка добавить значение по умолчанию в поле редактирования. C ++

Я впервые использую c ++ (VS 2012), чтобы сделать простой пользовательский интерфейс. Мне нужно запустить приложение, но у меня возникла проблема с добавлением значения по умолчанию в поля редактирования. По-видимому, единственный способ сделать это - добавить класс в главное окно. Код было легко понять, но я понимаю, что

фатальная ошибка C1189: #error: для построения приложения MFC с / MD [d] (версия библиотеки DLL CRT) требуется общая версия библиотеки DLL MFC. Пожалуйста, #define _AFXDLL или не используйте / MD [d]

ошибка. Если я добавлю #define _AFXDLL, я получу эти ошибки.

error C2084: function 'CRuntimeClass *CMyDialog::_GetBaseClass(void)' already has a body
error C2374: 'classCMyDialog' : redefinition; multiple initialization
error C2084: function 'CRuntimeClass *CMyDialog::GetThisClass(void)' already has a body
error C2084: function 'CRuntimeClass *CMyDialog::GetRuntimeClass(void) const' already has a body
error C2084: function 'CMyDialog::CMyDialog(CWnd *)' already has a body
error C2084: function 'CMyDialog::~CMyDialog(void)' already has a body
error C2084: function 'void CMyDialog::DoDataExchange(CDataExchange *)' already has a body
error C2084: function 'const AFX_MSGMAP *CMyDialog::GetMessageMap(void) const' already has a body
error C2084: function 'const AFX_MSGMAP *CMyDialog::GetThisMessageMap(void)' already has a body

Так что я немного запутался, что мне здесь делать. У меня нет большого опыта в программировании пользовательского интерфейса, так что, возможно, это просто проблема обучения.


person user2144480    schedule 16.11.2014    source источник
comment
Разместите код. Случайное предположение - у вас есть все эти функции, определенные в файле .h   -  person Anton Savin    schedule 17.11.2014
comment
Я не понимаю, я не создавал код IDE. Все это происходит в результате щелчка правой кнопкой мыши в главном диалоговом окне в среде IDE и нажатия кнопки «Добавить класс». Создает новый файл H и CPP. Я назвал их myDialog, а это базовый класс CDialog. Он добавляет include (#include afxdialogex.h), и из-за этого генерируются указанные выше ошибки.   -  person user2144480    schedule 17.11.2014


Ответы (2)


Возможно, вы разместили _AFXDLL не в том месте. Удалите его, а затем используйте меню «Проект», «Свойства», установите для параметра «Использование MFC» значение «Использовать MFC в общей библиотеке DLL».

person ScottMcP-MVP    schedule 16.11.2014
comment
Я тоже прочитал это при поиске. Когда я переключаюсь с двоичных файлов Windows на dll, я получаю тот же набор ошибок. Я попробовал это прежде, чем попытаться определить. - person user2144480; 17.11.2014
comment
Хорошо, приглядевшись к ошибке, я вижу кое-что, что меня не интересует, но может иметь смысл для кого-то с опытом. Вот полная строка ошибки. ›› 1 ›c: \ users \ administrator \ desktop \ ff \ joystick \ mydialog.cpp (47): ошибка C2084: функция 'CRuntimeClass * CMyDialog :: _ GetBaseClass (void)' уже имеет тело 1› c: \ users \ administrator \ desktop \ ff \ joystick \ mydialog.h (8): см. предыдущее определение '_GetBaseClass' ‹< Почему H и cpp конфликтуют так? Все они указывают на эту строку ›› IMPLEMENT_DYNAMIC (CMyDialog, CDialog) ‹ - person user2144480; 17.11.2014

Ничего себе, неважно, я только что обнаружил проблему, кажется, IDE объединила файлы cpp с другим дублированным файлом cpp. Каждая функция была здесь дважды, извините, что потратил ваше время.

person user2144480    schedule 17.11.2014