Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение потока, ошибка Type name expected 
:(
    Опции темы
Valeri
Дата 13.3.2007, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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. Почему так может быть? 
PM MAIL   Вверх
Fazil6
Дата 13.3.2007, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 11
Всего: 60



Цитата(Valeri @  13.3.2007,  08:24 Найти цитируемый пост)
 Почему так может быть? 

#include не сделан
PM MAIL   Вверх
ama_kid
Дата 13.3.2007, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 10
Всего: 95



#include "модуль_потока.h" ?


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Valeri
Дата 13.3.2007, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 2.2.2007

Репутация: нет
Всего: нет



Извиняюсь, забыл сказать, что все include сделаны.
PM MAIL   Вверх
pandrew
Дата 13.3.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.3.2006

Репутация: 3
Всего: 3



ИМХО где-то у тебя опечатка в декларации класса TComThread. Попробуй закоментить в классе все кроме первой и последней строчки.
PM MAIL   Вверх
Valeri
Дата 13.3.2007, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 2.2.2007

Репутация: нет
Всего: нет



Но TComThread создается автоматом (самим Билдером). Опечатка не возможна
PM MAIL   Вверх
ama_kid
Дата 13.3.2007, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 10
Всего: 95



Тогда цепляй проект к своему посту - просто так гадать имхо бессмысленно...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
pandrew
Дата 13.3.2007, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.3.2006

Репутация: 3
Всего: 3



Первый раз слышу. Что за визард? Какой BCB? 
Кроме того в генерируемых визардами кодах регулярно бывали ошибки.
PM MAIL   Вверх
Fazil6
Дата 13.3.2007, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 11
Всего: 60



Цитата(pandrew @  13.3.2007,  09:33 Найти цитируемый пост)
Кроме того в генерируемых визардами кодах регулярно бывали ошибки.

например... ?
PM MAIL   Вверх
Valeri
Дата 13.3.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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, так как он объявлен в какой-то функции (например в обработчике нажатия кнопки) и до него не добраться. А если бы удалось его объявить в классе основной формы, то можно было бы его запускать и останавливать, ссылаясь на эту форму. Но поток не удается объявить в классе формы (см. выше) а почему?

PM MAIL   Вверх
Fazil6
Дата 13.3.2007, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 11
Всего: 60



Цитата(Valeri @  13.3.2007,  09:47 Найти цитируемый пост)
а ниже приведен заголовочный файл главной формы, где я хочу объявить поток типа TComThread :

ну и где там инклуд твоего класса потока?
PM MAIL   Вверх
pandrew
Дата 13.3.2007, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.3.2006

Репутация: 3
Всего: 3



И где в #include "Unit4.h" перед class TForm1?
PM MAIL   Вверх
Valeri
Дата 13.3.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 2.2.2007

Репутация: нет
Всего: нет



инклуд есть, но в самом модуле Velocity.cpp, а здесь его нет. вы правы. Включил инклуд в Velocity.h. Ошибка пропала. Спасибо всем за помощь. Надо быть внимательнее.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.