Форум программистов, компьютерный форум CyberForum.ru

Как в проэкт запихать два срр-файла (один вызывает другой) - C++

Войти
Регистрация
Восстановить пароль
 
petrovich1
0 / 0 / 0
Регистрация: 22.09.2007
Сообщений: 314
21.02.2008, 21:02     Как в проэкт запихать два срр-файла (один вызывает другой) #1
Тело ф-ии в одном .срр а Маin в другом .срр как это сделать??
Есть проэкт. в папке Source files два срр-шника. Функция в одном
а вызывается она в Маин, который находится в другом срр-файле
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2008, 21:02     Как в проэкт запихать два срр-файла (один вызывает другой)
Посмотрите здесь:

Как склеить два файла в один? C++
два файла в один C++
C++ срр файл в нутри срр
C++ Залить два файла в один
C++ Простой вопрос по СРР - как из файла прочитать в булев массив?
C++ 3 файла: 1 - хэдер-файл и 2 простых .срр
C++ Из одного файла данных получить два массива (один с числами, другой - с буквами)
Слить один два файла в один C++
Нарисуйте схему создания проекта, как из срр-файла получается ехе-файл? C++
C++ Объединить два бинарных файла в один
C++ Адресация на другой срр файл
C++ Локальная функция *.срр файла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
21.02.2008, 21:32     Как в проэкт запихать два срр-файла (один вызывает другой) #2
Определи их с пометкой extern в том файле где собираешься ссылаться на функцию. Вроде должно работать...
Типа:
Код
// Declare printf with C linkage.
extern 'C' int printf( const char *fmt, ... );
Удачи, Владимир
petrovich1
0 / 0 / 0
Регистрация: 22.09.2007
Сообщений: 314
21.02.2008, 22:02  [ТС]     Как в проэкт запихать два срр-файла (один вызывает другой) #3
Ура работает !
А что вообще произошло-то?
Что такое екстерн?
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
21.02.2008, 22:11     Как в проэкт запихать два срр-файла (один вызывает другой) #4
Смотри по ссылке в контексте VC++:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_langref_extern.asp

или Страуструпа или др. литературу по С++.

А вообще, если в 2-х словах, то это слово говорит компилятору, ты не беспокойся, не ищи эту функцию - она не местная, а там потом линковщик пусть сам разбирается... То есть потом у тебя могут возникнуть проблемы линковании, если функция не будет найдена (например, если соответствующий lib не был подключен), но на уровне компиляции будет все тип-топ.

Вот, вроде больше чем 2 слова вышло... извиняюсь.

С уважением, Владимир
petrovich1
0 / 0 / 0
Регистрация: 22.09.2007
Сообщений: 314
21.02.2008, 22:27  [ТС]     Как в проэкт запихать два срр-файла (один вызывает другой) #5
Спасибо. Классно что есть такой форум!
А то случилось чудо-меня взяли на работу строить ресурсы да и терпят ещё что я ничего не знаю
У меня складывается впечатление что специалистов , людей по настоящему увлечённых не так уж и много. И не важно уже сколько ты знаешь. Важно стремление...
Archie
Сообщений: n/a
28.02.2008, 18:49     Как в проэкт запихать два срр-файла (один вызывает другой) #6
Про стремление - это точно. Как выразился один мой знакомый (тоже программист), главный инструмент программиста - копалка, то бишь умение раскапывать.
А теперь по делу - классически (а кто скажет что Страуструп это не классика) рекомендуется разделять объявление и определение функций в заголовочные и cpp-файлы. Например:
C++
1
2
// file.h
int func(long a);
C++
1
2
3
4
5
// file.cpp
int func(long a)
{
// something useful
}
C++
1
2
3
4
5
6
7
//main.cpp
#include 'file.h'
 
void main()
{
int Value = func(3);
}
можно привести эквивалентныq вариант с использованием extern, но с ним ты уже наверное разобрался
Yandex
Объявления
28.02.2008, 18:49     Как в проэкт запихать два срр-файла (один вызывает другой)
Ответ Создать тему
Опции темы

Текущее время: 15:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru