![]() |
|
|
![]()
|
|
| Valeri |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 2.2.2007 Репутация: нет Всего: нет |
Использую при работе ВСВ 6. Создаю класс-наследник потока TComThread (точнее он создается автоматически в отдельном модуле):
class TComThread : public TThread { private: protected: void __fastcall Execute(); public: __fastcall TComThread(bool CreateSuspended); // }; В заголовочном файле главной формы (в классе) пытаюсь создать экземпляр потока класса TComThread (делаю это в классе формы, чтобы можно было обращаться к этому потоку из других модулей программы): private : TComThread* ComThread; Компилятор выдает ошибки : Type name expected Declaration missing ; Насколько я понял компилятор, на момент компиляции файла основной формы, не видит модуль, в котором создан класс-наследник TComThread. Почему так может быть? |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 11 Всего: 60 |
||||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 10 Всего: 95 |
#include "модуль_потока.h" ?
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| Valeri |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 2.2.2007 Репутация: нет Всего: нет |
Извиняюсь, забыл сказать, что все include сделаны.
|
|||
|
||||
| pandrew |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.3.2006 Репутация: 3 Всего: 3 |
ИМХО где-то у тебя опечатка в декларации класса TComThread. Попробуй закоментить в классе все кроме первой и последней строчки.
|
|||
|
||||
| Valeri |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 2.2.2007 Репутация: нет Всего: нет |
Но TComThread создается автоматом (самим Билдером). Опечатка не возможна
|
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 10 Всего: 95 |
Тогда цепляй проект к своему посту - просто так гадать имхо бессмысленно...
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| pandrew |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.3.2006 Репутация: 3 Всего: 3 |
Первый раз слышу. Что за визард? Какой BCB?
Кроме того в генерируемых визардами кодах регулярно бывали ошибки. |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 11 Всего: 60 |
||||
|
||||
| Valeri |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 2.2.2007 Репутация: нет Всего: нет |
Вот заголовочный файл модуля потока, автоматически генерируемый Билдером (BCB 6) :
//--------------------------------------------------------------------------- #ifndef Unit4H #define Unit4H //--------------------------------------------------------------------------- #include <Classes.hpp> //--------------------------------------------------------------------------- class TComThread : public TThread { private: protected: void __fastcall Execute(); public: __fastcall TComThread(bool CreateSuspended); // }; //--------------------------------------------------------------------------- #endif а ниже приведен заголовочный файл главной формы, где я хочу объявить поток типа TComThread : #ifndef VelocityH #define VelocityH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include "PERFGRAP.h" #include <Menus.hpp> #include <ComCtrls.hpp> #include <Dialogs.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components void __fastcall Button1Click(TObject *Sender); void __fastcall Button2Click(TObject *Sender); void __fastcall Button3Click(TObject *Sender); void __fastcall N8Click(TObject *Sender); private: // User declarations void __fastcall OnConnect(); TComThread *ComThread;//вот это объявление вызывает проблему public: // User declarations HANDLE hCom; struct Data_3byte { unsigned char RecByte1; unsigned char RecByte2; unsigned char RecByte3; } Data; unsigned short Fh; unsigned short Fh1, Fh2, Fh3, Fh4, Fh5, Fh6, Fh7, Fh8, Fh9; float V; int Nsect; unsigned short RecByte; float V1, V2, V3, V4, V5, V6, V7, V8, V9; __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif //--------------------------------------------------------------------------- Дело в том, что если объявлять экземпляр потока где-то в другом модуле и там же запускать поток, то все нормально работает, но тогда нет возможности приостановить поток ComThread, так как он объявлен в какой-то функции (например в обработчике нажатия кнопки) и до него не добраться. А если бы удалось его объявить в классе основной формы, то можно было бы его запускать и останавливать, ссылаясь на эту форму. Но поток не удается объявить в классе формы (см. выше) а почему? |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 11 Всего: 60 |
||||
|
||||
| pandrew |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.3.2006 Репутация: 3 Всего: 3 |
И где в #include "Unit4.h" перед class TForm1?
|
|||
|
||||
| Valeri |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 2.2.2007 Репутация: нет Всего: нет |
инклуд есть, но в самом модуле Velocity.cpp, а здесь его нет. вы правы. Включил инклуд в Velocity.h. Ошибка пропала. Спасибо всем за помощь. Надо быть внимательнее.
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |