Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> implict declaration of function 
:(
    Опции темы
Tiffany
Дата 6.6.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть такое дело... Заголовочный файл (MyThread.h), содержащий соответствующий класс инклудится в другой файл (файл формы). Все работает. НО когда я хочу этот же файл приинклудить к другой форме вылазит ошибка:
user posted image

Приведу куски текстов файлов:
form0.ui.h - файл главной формы
Код


//////////////////////////////
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <sys/time.h>
#include <qstring.h>
///////////////// user includes
#include "MyThread.h"



#include <fcntl.h>
#include <termios.h>


#define _POSIX_SOURCE 1

// далее текст проги


MyThread.h - файл который инклудим
Код

#ifndef MyThreadH
#define MyThreadH
#include "TRemoteControl.h"
#include <qthread.h>
#include <qapplication.h>

#define DEVICE "/dev/ttyM3"
//описание класса
#endif


TRemoteControl.h - описание класса используемого в MyThread.h (здесь выдает ошибку)
Код

#ifndef TRemoteControlH
#define TRemoteControlH

#include <fcntl.h>
#include <qfile.h>
#include <termios.h>
#include <qmutex.h>

//делаем много интересного...

bool TRemoteControl::TxBuffer(char* lpBuffer, unsigned long int nNumberOfBytesToWrite)
{
  unsigned long TXReal;

  bzero(TransportBuffer,sizeof(TransportBuffer));
  memcpy(TransportBuffer,lpBuffer,nNumberOfBytesToWrite);

  TransportBuffer[nNumberOfBytesToWrite]=0x03;
  nNumberOfBytesToWrite++;

  TXReal=write(DeviceHandle, TransportBuffer,nNumberOfBytesToWrite); //вот тут ругается
  f1.flush();

}


Буду очень признательна за помощь, а то я свой бубен дома забыла  smile 

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


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Tiffany, 
в *.h файлах не должно быть определений методов
вынеси TxBuffer в TRemoteControl.cpp


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Peter
Дата 6.6.2008, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как я понял, компилятор не узнал функцию write(). Вот он и говорит: "Implicit declaration...". Значит, он ее не нашел в заголовочных файлах.

Добавлено через 3 минуты и 18 секунд
Что если подключить io.h?


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
Tiffany
Дата 7.6.2008, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Peter, дык в первом случае-то все находил. Ну лан, када я все инклуды из form0.ui.h перетащила в MyThread.h - полезла куча ошибок в духе:
Код

Redefinition of function ...
First declared there ...


Как-то так. Т.е. функция write() уже устраивает, но ругается на повторное объявление других... Вооот, 
MAKCim, это я сеня канешн попробую, хотя реализация может находиться в файле с заголовками, но мало ли smile
PM MAIL   Вверх
Alexeis
Дата 7.6.2008, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Tiffany, скорее всего множественное включение заголовочных файлов. Нужно поместить заголовочный файл в "скобки" из

#if !defined(<уникальный идентификатор>)
#define <уникальный идентификатор>

тут код заголовков

#endif


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Tiffany
Дата 7.6.2008, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Alexeis, так и сделано, смари код  smile 
PM MAIL   Вверх
Peter
Дата 11.6.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Tiffany @  7.6.2008,  10:42 Найти цитируемый пост)
ругается на повторное объявление других

Конечно! Получается, в нескольких .CPP сидит тело одной и той же функции. Компилятор на это и ругается. Тело функции может присутствовать в проекте только один раз.
В заголовочных файлах можно объявлять шаблоны (template) функций, поскольку из них объектный код не генерируется.


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
Torsten
Дата 11.6.2008, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Tiffany, 
int write() - это твоя функция или библиотечная ?
Если твоя напиши как ее обьявляешь (то как она в хедере выглядит).


Это сообщение отредактировал(а) Torsten - 11.6.2008, 13:49
--------------------
We have no begining, we have no end. We are infinite.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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