![]() |
|
|
![]()
|
|
| МаксимPim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.3.2009 Репутация: нет Всего: нет |
Начинающий.
Осваиваю по книге Н.Б.Культина С++. Исходники на диске прилагались к книге, компилятора"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' и др. Отзовитесь плз! Это сообщение отредактировал(а) МаксимPim - 14.3.2009, 01:49 |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Вам же компилятор говорит что не так:
[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 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.3.2009 Репутация: нет Всего: нет |
Way, very thenks!
Объясните пожалуйста как поправить? Вроде листинг скатал 1=1. С остальными процедурами все ясно, а у этой нет *sender, почемуто. Объяснений у Никиты Борисыча не нашел. Самоучитель его до дыр зачитал. Остальные Errors может по этой причине. Это сообщение отредактировал(а) МаксимPim - 15.3.2009, 04:46 |
||||
|
|||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Посмотрите, есть ли в 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 |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.3.2009 Репутация: нет Всего: нет |
Всё супер!
Насчёт 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 задает разделсправочнойсистемы…" Это сообщение отредактировал(а) МаксимPim - 16.3.2009, 03:57 |
||||||||
|
|||||||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Лучше объявить тогда ее как член класса. При возникновении ошибки приводите строку, в которой она выскакивает, но предварительно переведите текст ошибки и посмотрите сами. В 99% случаях наша помощь просто не потребуется. [BCC32 Error] Unit1.cpp(23): E2379 Statement missing ; Выражение требует ; В данной строке пропущена точка с запятой - посмотрите где и поставьте. И т.п. |
|||
|
||||
| МаксимPim |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.3.2009 Репутация: нет Всего: нет |
Точка с запятой правда отсутствовали.
aPath пробовал по-разному объявлять в модуле формы, наконец вот так: void __fastcall aPath(TComponent* Owner);
Программа выдала на 40 и на 136 строчки
Больше пока ни на что не способен. В данный момент читаю руководство Стефана Р. Девиса, но пока мало что понимаю про объявление. |
||||
|
|||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Все-таки почитайте повнимательнее книжку. Я в примере написал как объявить aPath: AnsiString aPath = ExtractFilePath(Application->ExeName) + " "; Но это объявление действует только в одном методе класса (смотрите области видимости) И я посоветовал вам объявить такую переменную в самом классе, чтобы она была доступна из всех методов класса. И вы это делаете, но почему-то так: void __fastcall aPath(TComponent* Owner); Сравните мое объявление и ваше: Мое: AnsiString aPath Ваше: void __fastcall aPath(TComponent* Owner); Вам нужна переменная aPath типа AnsiString. А вы объявляете метод aPath Следующая ошибка: [BCC32 Error] Unit1.cpp(40): E2316 'LoadFormFile' is not a member of 'TPicture' Покажите строку № 40 Эту ошибку: [BCC32 Error] Unit1.cpp(62): E2377 Catch statement missing ) Переведите и исправьте сами |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
вот тут не понял. зачем "скатывать", если исходники прилагались?!
в твоей "перепечатке" куча очепяток, всякие там LoadFormFile, Excepcion, ADODataSEt1, итд итп. мало того, если ты просто перепечатывал, то у тебя останутся не установленными свойства компонентов. в общем и целом, вот это твое утверждение выглядит весьма сомнительным: и, как следствие, добрый тебе совет(уже не раз звучавший): прочитай что-нибудь по теме. лучше пару-тройку раз для начала. |
|||
|
||||
| МаксимPim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.3.2009 Репутация: нет Всего: нет |
Понял, врубился а то сперва поторопился. Срочно бегу исправлять все ошибки. Это сообщение отредактировал(а) МаксимPim - 19.3.2009, 03:06 |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
||||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 7 Всего: 306 |
А лучше вообще выкинуть Культина и начать плодотворное изучение Бормана к примеру с того же Архангельского.
|
|||
|
||||
| МаксимPim |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.3.2009 Репутация: нет Всего: нет |
Спасибо, за советы.
В данный момент занят расшифровкой статьи Дэвиса "Разрешение области видимости"(стр. 161) и др.
Прислушаюсь к вашему совету. Борман (Борланд) в наличии и Архангельский прибыл на той неделе. Вроде толково пишет, но что-то вроде там одни ADO без фотографий как у Культина. Это сообщение отредактировал(а) МаксимPim - 21.3.2009, 02:15 |
||||
|
|||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Какой ADO, какие фотографии? Начните с Hello World и строк! Потом понемного и до фотографий дойдем. |
|||
|
||||
| МаксимPim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.3.2009 Репутация: нет Всего: нет |
P.S.: Сейчас купить программу хорошей базы-в тысячи. А тут мечтал отличную базу создать с мультимедийной подключкой, интерфейсом. У Никиты Борисовича как-раз всё в книжке, только по отдельности... И вроде в листинги программ понятны, вот только с этим aPath... Придётся красивой базе подождать до лучших времен. Это сообщение отредактировал(а) МаксимPim - 24.3.2009, 03:45 |
|||
|
||||
![]()
|
| Правила форума "C++: Базы данных" | |
|
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |