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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разработка пользовательского модуля в DEV CPP 
:(
    Опции темы
AlexKib
Дата 13.2.2015, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!

Программа, написанная в DEV CPP "не видит" функцию в пользовательском модуле, если использую директиву
#include "unit.h". В модуле прописано использование этого заголовочного файла.
Если использую директиву #include "unit.cpp", функция доступна.

Если в заголовочном файл описываю класс со встроенными методами, то все нормально, методы доступны.
При объявлении методов, определяемых вне класса, та же история, что и с обычными функциями.

Пожалуйста, подскажите, в чем проблема?

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


Опытный
**


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

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



Покажите код. Где и как объявляется, где и как используется. И текст ошибки, выведенный компилятором, будьте добры.
PM MAIL   Вверх
feodorv
Дата 13.2.2015, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

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



Цитата(AlexKib @  13.2.2015,  14:26 Найти цитируемый пост)
Пожалуйста, подскажите, в чем проблема?

А Вы файлы исходников (unit.cpp etc) компилируете и прилинковываете к своей программе?


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
AlexKib
Дата 14.2.2015, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пример формальный, я проверял работу с пользовательским модулем.

//основная программа
#include <iostream>
#include<stdio.h>
#include "U.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//
int main(int argc, char** argv) {
using namespace std;
a n;
int b=2;
cout<<my(b)<<endl;
cout<<n.hello("Hello");
//getchar();
    return 0;
}

//заголовочный файл U.h
#ifndef U_H
#define U_H
int my(int i);
class a {
public:
char * hello ( char *s);
};
#endif

//модуль

#include "U.h"
int my(int i) {
return i;
}
 char* a::hello(char *s) {
return s;
}

Добавлено через 9 минут и 20 секунд

Сообщения об ошибках

C:\Users\admin\AppData\Local\Temp\cc1sifrX.o    main.cpp:(.text+0x24): undefined reference to `my(int)'
C:\Users\admin\AppData\Local\Temp\cc1sifrX.o    main.cpp:(.text+0x56): undefined reference to `a::hello(char*)'
PM MAIL   Вверх
xvr
Дата 16.2.2015, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(AlexKib @  14.2.2015,  14:39 Найти цитируемый пост)
Сообщения об ошибках

Файл с модулем не добавлен в проект

PM MAIL   Вверх
AlexKib
Дата 16.2.2015, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как это не добавлен, когда есть директива #include. Тогда бы сообщение об ошибке было бы другое - неизвестный файл.

Если в директиве прописываю не заголовочный файл, а сам  модуль, то функции доступны.
 smile 


PM MAIL   Вверх
xvr
Дата 16.2.2015, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(AlexKib @  16.2.2015,  16:42 Найти цитируемый пост)
Как это не добавлен, когда есть директива #include.

Этого недостаточно. Код модуля (файл, с расширением cpp или cc или cxx - на выбор) должен быть добавлен в проект в DEV CPP. Если у вас проекта нет, то создайте, иначе работать не будет.
(Ну или сделайте #include "....cpp" в вашем main.cpp - но это грязный хак)

PM MAIL   Вверх
AlexKib
Дата 16.2.2015, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Все понял. Спасибо. 
Исправил, все работает! 


Это сообщение отредактировал(а) AlexKib - 16.2.2015, 19:12
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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