Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Анализатор и постфиксная запись в MFC проекте.

Автор: Krjuger 11.12.2009 21:33

Работаю в MVS 2008.Надо сделать программу которая будет из поля edit1 получать строку ,по нажатию bottom1 производить анализ выражения и записывать ошибку в bottom4,если таковая имеется.Я не знаю как свзять процесс анализа и нажатие bottom1,и также проект не проходит компиляцию,выдает 2 ошибки :IDC_COMBO2-неизвестный идентификатор(в файле Kursovoy.cpp).Самостоятельно найти я данное IDC не смог.предполагаемая обработка должна происходить в классе MyDialog(находится в одноименном файле).В общем нужна помощ smile.gif


Прикрепленные файлы
Прикрепленный файл  ChildFrm.cpp ( 968 байт ) Кол-во скачиваний: 253
Прикрепленный файл  Kursovoy.cpp ( 3.89 килобайт ) Кол-во скачиваний: 267
Прикрепленный файл  KursovoyDoc.cpp ( 1.13 килобайт ) Кол-во скачиваний: 276
Прикрепленный файл  KursovoyView.cpp ( 2.48 килобайт ) Кол-во скачиваний: 306
Прикрепленный файл  MainFrm.cpp ( 1.92 килобайт ) Кол-во скачиваний: 263
Прикрепленный файл  MyDialog.cpp ( 1.56 килобайт ) Кол-во скачиваний: 285

Автор: volvo 11.12.2009 21:48

Ну, присоединил ты все CPP-файлы... А заголовочные где? В одном из них и должно быть описание твоего IDC...

Автор: Krjuger 11.12.2009 22:20

Вон короче залил,если ничего не выкидывать то только 9.4м догнал,вообще если базы удалить но проект будет весить меньше мегабайта.
http://www.sharemania.ru/0226097

Ну так что выкинуть базы и так скинуть или так оставить?

Автор: Krjuger 12.12.2009 17:21

В общем,как я понял 9 мегабайт никто качать не станет.Я выкинул папку дебаг и VC++ Intellisense Database теперь архив весит 50кб и вроде запускается проект,надеюсь Volvo,ты посомтриш.И еще как я понял мне придется переправлять все мои классы,чтобы адаптировать их под CString, в скязи с этим есть ли какая нибудь функция которая сверяет определенный сивмов из строки CString"a?


Прикрепленные файлы
Прикрепленный файл  Kursovoy1.rar ( 53.52 килобайт ) Кол-во скачиваний: 206

Автор: Krjuger 13.12.2009 17:25

Мда,попробовал переправить мой анализатор под CString столкнулся с проблемой вывода ошибки,если я передаю в мою функцию Result 1 символ то он передается как wchar_s а если я передаю переменную то как CString.Попробовал переделать под ссылки,не получилось,так же я запутался в организации функций и классов.Если я правильно понимаю то в функции MyDialog::OnInitDialog я произвожу инициализацию всех нужных мне переменных,OnEnChangeEdit1 я выполняю действия при изменении моего Edit.OnBnClickedButton1 это идет обработка события при нажатии на кнопку ,(кстати необходимо в этом событии проверять была ли нажата кнопка?)? В общем помощ нужна капитальная sad.gif измененный проект в предыдущем посте.

Автор: Krjuger 13.12.2009 18:54

Ладно вроде в CString разобрался,но во всем остальном нужна помощ...


Прикрепленные файлы
Прикрепленный файл  Kursovoy1.rar ( 53.74 килобайт ) Кол-во скачиваний: 207

Автор: Krjuger 14.12.2009 21:25

Немного почитав, я понял что создал не совсем то что надо.В общем вот измененный вариант,так же переписал анализатор под CString и в общем нужен совет,,на правильном ли я пути,или я вообще бред делаю.Задача в том что по нажатии 1 кнопки должен пойти анализатор и записать в поле 2(это временно) ошибку.так же я немного не понимаю зачем нужно OnEnChangeEdit1().


Прикрепленные файлы
Прикрепленный файл  Kursovoy___копия.rar ( 47.72 килобайт ) Кол-во скачиваний: 208

Автор: Krjuger 16.12.2009 1:45

Ну хоть кто нибудь отзовитесь!
В общем начну тогда с малого


void CKursovoyDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
CString buf;

edit_1.GetWindowTextW(buf);
if ( buf == "" ) // Is a particular field still empty?
{
edit_1.SetWindowText(_T("Please enter a value for MyValue"));
return; // Inform the user that he can't close the dialog without
// entering the necessary values and don't close the
// dialog.
}
else
{
Analiz m1(buf);
edit_3.SetWindowText(m1.Output);
CDialog::OnOK(); // This will close the dialog and DoModal will return.
}
}


Это обработка нажатия клавиши,я знаю что если в поле едита ничего не ввести? то в едит будет выведено Please enter a value for MyValue,что свидетельствует о том,что в переменную баф записывается информация из эдита,но при этом, когда я ввожу какую нибудь информативную строку,мне начинает выдавать ошибку в файле atlsimpstr.h

Автор: Krjuger 16.12.2009 18:44

Народ,неужели никто не пользуется mfc,или просто мне лично отвечать никто не хочет7

Автор: volvo 16.12.2009 19:17

Цитата
Народ,неужели никто не пользуется mfc,или просто мне лично отвечать никто не хочет7
Да кому на фиг этот MFC сдался? Я ж даже твой проект не могу сторонним компилятором открыть, только MSVC++ ему подавай. А я VC++ не держу, ибо не нужна мне привязка к одной ОСи...

Автор: Krjuger 16.12.2009 19:36

Хорошо хоть ответил,теперь понятно,что полчание такое.