Помощь - Поиск - Пользователи - Календарь
Полная версия: Анализатор и постфиксная запись в MFC проекте.
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Krjuger
Работаю в MVS 2008.Надо сделать программу которая будет из поля edit1 получать строку ,по нажатию bottom1 производить анализ выражения и записывать ошибку в bottom4,если таковая имеется.Я не знаю как свзять процесс анализа и нажатие bottom1,и также проект не проходит компиляцию,выдает 2 ошибки :IDC_COMBO2-неизвестный идентификатор(в файле Kursovoy.cpp).Самостоятельно найти я данное IDC не смог.предполагаемая обработка должна происходить в классе MyDialog(находится в одноименном файле).В общем нужна помощ smile.gif
volvo
Ну, присоединил ты все CPP-файлы... А заголовочные где? В одном из них и должно быть описание твоего IDC...
Krjuger
Вон короче залил,если ничего не выкидывать то только 9.4м догнал,вообще если базы удалить но проект будет весить меньше мегабайта.
Изображение

Ну так что выкинуть базы и так скинуть или так оставить?
Krjuger
В общем,как я понял 9 мегабайт никто качать не станет.Я выкинул папку дебаг и VC++ Intellisense Database теперь архив весит 50кб и вроде запускается проект,надеюсь Volvo,ты посомтриш.И еще как я понял мне придется переправлять все мои классы,чтобы адаптировать их под CString, в скязи с этим есть ли какая нибудь функция которая сверяет определенный сивмов из строки CString"a?
Krjuger
Мда,попробовал переправить мой анализатор под CString столкнулся с проблемой вывода ошибки,если я передаю в мою функцию Result 1 символ то он передается как wchar_s а если я передаю переменную то как CString.Попробовал переделать под ссылки,не получилось,так же я запутался в организации функций и классов.Если я правильно понимаю то в функции MyDialog::OnInitDialog я произвожу инициализацию всех нужных мне переменных,OnEnChangeEdit1 я выполняю действия при изменении моего Edit.OnBnClickedButton1 это идет обработка события при нажатии на кнопку ,(кстати необходимо в этом событии проверять была ли нажата кнопка?)? В общем помощ нужна капитальная sad.gif измененный проект в предыдущем посте.
Krjuger
Ладно вроде в CString разобрался,но во всем остальном нужна помощ...
Krjuger
Немного почитав, я понял что создал не совсем то что надо.В общем вот измененный вариант,так же переписал анализатор под CString и в общем нужен совет,,на правильном ли я пути,или я вообще бред делаю.Задача в том что по нажатии 1 кнопки должен пойти анализатор и записать в поле 2(это временно) ошибку.так же я немного не понимаю зачем нужно OnEnChangeEdit1().
Krjuger
Ну хоть кто нибудь отзовитесь!
В общем начну тогда с малого

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
Народ,неужели никто не пользуется mfc,или просто мне лично отвечать никто не хочет7
volvo
Цитата
Народ,неужели никто не пользуется mfc,или просто мне лично отвечать никто не хочет7
Да кому на фиг этот MFC сдался? Я ж даже твой проект не могу сторонним компилятором открыть, только MSVC++ ему подавай. А я VC++ не держу, ибо не нужна мне привязка к одной ОСи...
Krjuger
Хорошо хоть ответил,теперь понятно,что полчание такое.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.