| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Базы данных > ADO и фотографии |
| Автор: МаксимPim 14.3.2009, 01:26 |
| Начинающий. Осваиваю по книге Н.Б.Культина С++. Исходники на диске прилагались к книге, компилятора"GEARа" не было - поставил свой. При компиляции базы данных выдается: [BCC32 Error] Unit1.cpp(35): E2316 '_fastcall TForm1::ShowImage(AnsiString)' is not a member of 'TForm1' [BCC32 Error] Unit1.cpp(30): E2451 Undefined symbol 'aPath' и др. Отзовитесь плз! |
| Автор: Anikmar 14.3.2009, 03:28 |
| Вам же компилятор говорит что не так: [BCC32 Error] Unit1.cpp(35): E2316 '_fastcall TForm1::ShowImage(AnsiString)' is not a member of 'TForm1' метод ShowImage(AnsiString) не является методом класса TForm1. Возможно он был определен в декларации класса, а вы его перенесли в основной модуль не оставив описания. [BCC32 Error] Unit1.cpp(30): E2451 Undefined symbol 'aPath' Компилятор не смог найти объявления aPath И вообще - код в студию, зачем на кофейной гуще гадать. Либо ждем собрания клуба экстрасенсов. |
| Автор: МаксимPim 15.3.2009, 03:45 | ||||
Way, very thenks!
Объясните пожалуйста как поправить? Вроде листинг скатал 1=1. С остальными процедурами все ясно, а у этой нет *sender, почемуто. Объяснений у Никиты Борисыча не нашел. Самоучитель его до дыр зачитал. Остальные Errors может по этой причине. |
| Автор: Anikmar 15.3.2009, 21:27 | ||
| Посмотрите, есть ли в Unit1.h внутри класса TForm1 объявление: void __fastcallShowImage(AnsiString img); По поводу второй ошибки:
Что за переменная aPath? Применяя экстрасенсорные способности допускаю, что где-то в основном модуле проекта эта переменная получает значение пути, в котором запущено приложение? ИМХО Если вы пытаетесь изучить С++ и Builder просто копированием текстов программ из книг у вас вряд-ли что-то получится. В примерах из книг огромное количество простейших ошибок. И если вы не будете понимать что вы вводите, то результата придется ждать достаточно долго. Втупую помочь вам исправить ошибку можно, замените в вышеприведенном коде строку MessageDlg("" + aPath + "contacts.mdb",mtError,TMsgDlgButtons()<<mbOK,0); на строки AnsiString aPath = ExtractFilePath(Application->ExeName) + " "; MessageDlg(aPath + "contacts.mdb",mtError,TMsgDlgButtons()<<mbOK,0); Правда я не уверен, что кучи других ошибок не вылезет - и под рукой нет описания MessageDlg - что ей на фход надо char* или AnsiString |
| Автор: МаксимPim 16.3.2009, 03:43 | ||||||||
| Всё супер! Насчёт void __fastcallShowImage(AnsiString img);-Действительно не было объявлено в:
После вставки ошибка 35 строки исчезла, но 40-я вместо (E2206 Illegal character '\' (0x5c) ) выдала ('LoadFormFile' is not a member of 'TPicture') и (E2451 Undefined symbol 'aPath')
Т.е., как понял, 35-ю исправили; на очереди 40-е. Но как, ведь класса (TРicture) на форме нет. Её занести в Unit1.h и объявить в класс? Насчет aPath: после изменения строки 30-й
ошибка исчезла. С остальными aPath наверное подобным образом поступить? Но как лучше? Про (MessageDlg) в данном случае думается, что это строчная, а не символьная. Описывает её так: "MessageDlg (s,t,b,h) выводит на экран диалоговое окно с сообщением s и возвращает код кнопки, щелчком на которой пользователь закрыл окно. Параметр t определяет тип окна: mtWarning-внимание; mtError-ошибка; mtInformation-информация; mtConfiguration-запрос; mtCustom-пользовательское (без значка). Параметр b (множество типа TmsgDlgButtons()) задает кнопки, отображаемые в окне (mdYes, mdNo, mdOk, mdCancel, mdHelp, mdAbort, mdRetry, mdIgnore, и mdAll). Параметр h задает разделсправочнойсистемы…" |
| Автор: Anikmar 16.3.2009, 11:42 | ||
Лучше объявить тогда ее как член класса. При возникновении ошибки приводите строку, в которой она выскакивает, но предварительно переведите текст ошибки и посмотрите сами. В 99% случаях наша помощь просто не потребуется. [BCC32 Error] Unit1.cpp(23): E2379 Statement missing ; Выражение требует ; В данной строке пропущена точка с запятой - посмотрите где и поставьте. И т.п. |
| Автор: МаксимPim 18.3.2009, 01:47 | ||||
| Точка с запятой правда отсутствовали. aPath пробовал по-разному объявлять в модуле формы, наконец вот так: void __fastcall aPath(TComponent* Owner);
Программа выдала на 40 и на 136 строчки
Больше пока ни на что не способен. В данный момент читаю руководство Стефана Р. Девиса, но пока мало что понимаю про объявление. |
| Автор: dumb 18.3.2009, 05:02 |
| вот тут не понял. зачем "скатывать", если исходники прилагались?! в твоей "перепечатке" куча очепяток, всякие там LoadFormFile, Excepcion, ADODataSEt1, итд итп. мало того, если ты просто перепечатывал, то у тебя останутся не установленными свойства компонентов. в общем и целом, вот это твое утверждение выглядит весьма сомнительным: и, как следствие, добрый тебе совет(уже не раз звучавший): прочитай что-нибудь по теме. лучше пару-тройку раз для начала. |
| Автор: МаксимPim 19.3.2009, 02:58 | ||
Понял, врубился а то сперва поторопился. Срочно бегу исправлять все ошибки. |
| Автор: Anikmar 19.3.2009, 04:08 | ||
Лучше не торопитесь. Медленно, но верно. |
| Автор: mrbrooks 19.3.2009, 09:44 |
| А лучше вообще выкинуть Культина и начать плодотворное изучение Бормана к примеру с того же Архангельского. |
| Автор: МаксимPim 21.3.2009, 01:50 | ||||
Спасибо, за советы.
В данный момент занят расшифровкой статьи Дэвиса "Разрешение области видимости"(стр. 161) и др.
Прислушаюсь к вашему совету. Борман (Борланд) в наличии и Архангельский прибыл на той неделе. Вроде толково пишет, но что-то вроде там одни ADO без фотографий как у Культина. |
| Автор: Anikmar 22.3.2009, 19:33 | ||
Какой ADO, какие фотографии? Начните с Hello World и строк! Потом понемного и до фотографий дойдем. |
| Автор: МаксимPim 24.3.2009, 02:42 |
| P.S.: Сейчас купить программу хорошей базы-в тысячи. А тут мечтал отличную базу создать с мультимедийной подключкой, интерфейсом. У Никиты Борисовича как-раз всё в книжке, только по отдельности... И вроде в листинги программ понятны, вот только с этим aPath... Придётся красивой базе подождать до лучших времен. |
| Автор: Anikmar 24.3.2009, 14:46 | ||
Это точно |
| Автор: МаксимPim 26.3.2009, 03:02 |
| Тогда тема пока закрыта. Спасибо за внимание! |