Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h? / 19 сообщений из 19, страница 1 из 1
01.01.2013, 14:36
    #38098340
GermanV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
Создал два проекта (один MFC, а другой- пустой). Теперь из MFC проекта вызываю функции описанные в пустом проекте. Но чтобы он нашел реализацию функций подключаю не только заголовочный файл .h, но и файл .cpp.

Код: plaintext
1.
2.
#include "C:\МуSolution\Empty\Empty.h"
#include "C:\МуSolution\Empty\Empty.cpp"



Но тогда в проекте MFC становятся доступны ВСЕ функции из файла .cpp (а не только объявленные в файле .h). А у меня в файле .h создан удобный интерфейс с минимальным набором функций (все как описано у Страуструпа в главе "Исходные файлы и программы").

Таким образом надо как-то подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h того же другого проекта. Как?
...
Рейтинг: 0 / 0
01.01.2013, 14:52
    #38098341
GermanV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
+ Разумеется оба проекта созданы в рамках одного решения.
...
Рейтинг: 0 / 0
01.01.2013, 18:34
    #38098387
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
боже мой, какая каша. И ты еще пытаешься свой менеджер памяти делать???
Читай в учебниках главы: Заголовочные файлы, объектные файлы, раздельная компиляция, компоновщики, библиотеки.
Если кратко:
- .h ты #include в текст своего .cpp.
- .cpp ты компилируешь в .obj при помощи cl
- все полученные .obj ты компонуешь вместе при помощи link
Доступность реализаций проверяется только на последнем этапе. На первом, проверятся только синтаксическая правильность вызовов.
...
Рейтинг: 0 / 0
01.01.2013, 19:15
    #38098399
GermanV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
White Owlбоже мой, какая каша. И ты еще пытаешься свой менеджер памяти делать???
Читай в учебниках главы: Заголовочные файлы, объектные файлы, раздельная компиляция, компоновщики, библиотеки.
Если кратко:
- .h ты #include в текст своего .cpp.
- .cpp ты компилируешь в .obj при помощи cl
- все полученные .obj ты компонуешь вместе при помощи link
Доступность реализаций проверяется только на последнем этапе. На первом, проверятся только синтаксическая правильность вызовов.

Спасибо, но все это я знаю. А вот что конкретно надо сделать в вашем ответе не написано.
...
Рейтинг: 0 / 0
01.01.2013, 19:26
    #38098400
GermanV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
Весь день потерял: добавлял компоновщику пути, настраивал зависимости ...

В итоги пришел к корявому решению: в файле Empty.h в пространстве имен "Empty" сразу определить значение функции вызовом функции из второго пространства имен "Empty_dev" с реализацией:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#include "Empty_dev.h"
#include "Empty_dev.cpp"

namespace Empty
{
	void MyFunc(void* ThreadData){Empty_dev::MyFunc(ThreadData);}
}



а уже в файле Empty_dev.cpp в пространстве имен "Empty_dev" реализовал функцию "MyFunc". Жутко коряво, к тому же в проекте MFC становится доступно пространство имен с реализацией "Empty_dev". Что очень плохо.

Может кто знает, как все-таки напрямую соединить два проекта без промежуточных файлов/пространств имен?
...
Рейтинг: 0 / 0
01.01.2013, 19:56
    #38098415
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
GermanV,

Что-делать, что-делать... УЧЕБНИКИ ЧИТАТЬ!

Сделай в проекте A один заголовок "экспортируемые функции". Вынеси все функции упомянутые в этом заголовке в библиотеку.
В проекте B, #include этот один заголовок, и добавь созданную библиотеку в список для компоновки.
ВСЁ. Элементарно как дважды-два и описано во всех учебниках по С.
...
Рейтинг: 0 / 0
01.01.2013, 20:21
    #38098422
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
GermanV#include "Empty_dev.cpp"
Эта пять! Где тут смайлик, бьющийся об стену?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.01.2013, 20:26
    #38098423
GermanV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
White OwlGermanV,

Что-делать, что-делать... УЧЕБНИКИ ЧИТАТЬ!

Сделай в проекте A один заголовок "экспортируемые функции". Вынеси все функции упомянутые в этом заголовке в библиотеку.
В проекте B, #include этот один заголовок, и добавь созданную библиотеку в список для компоновки.
ВСЁ. Элементарно как дважды-два и описано во всех учебниках по С.


Ой, что вы в Новый Год так разорались?

1. Какое расширение будет иметь ваша библиотека (лучше написать конкретно ее имя)
2. Используя мой пример: какие функции она будет содержать (названия).
3. Как библиотека разделит второй проект на интерфейс / разработку?
...
Рейтинг: 0 / 0
01.01.2013, 20:30
    #38098425
GermanV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
+
4. И какую конкретно строку в каком конкретно месте необходимо прописать для компоновщика?
...
Рейтинг: 0 / 0
01.01.2013, 20:35
    #38098426
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
GermanV4. И какую /конкретно/ строку в каком /конкретно/ месте необходимо прописать
для компоновщика?
Какую, строку? Назачем? Ты не в состоянии найти кнопку "Add file to project"?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.01.2013, 20:50
    #38098434
GermanV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
Dimitry SibiryakovGermanV4. И какую /конкретно/ строку в каком /конкретно/ месте необходимо прописать
для компоновщика?
Какую, строку? Назачем? Ты не в состоянии найти кнопку "Add file to project"?..


Вообще-то у меня два разных проекта. Опишите, пожалуйста, конкретно способ добавления файла одного проекта в другой проект.
...
Рейтинг: 0 / 0
01.01.2013, 20:58
    #38098437
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
GermanVОпишите, пожалуйста, конкретно способ добавления файла одного проекта в другой проект.Файл заголовков (.h) - для компиляции, объектные файлы/библиотеки (.obj/.lib) - для компоновки.
...
Рейтинг: 0 / 0
01.01.2013, 20:59
    #38098439
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
GermanVконкретно способ добавления файла одного проекта в другой проект.

Файлы любого другого проекта добавляются в проект точно так же как и любые другие. Меню
"Project" -> "Add Existing Item". Никогда раньше туда не заглядывал?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.01.2013, 21:19
    #38098446
GermanV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
Dimitry SibiryakovGermanVконкретно способ добавления файла одного проекта в другой проект.

Файлы любого другого проекта добавляются в проект точно так же как и любые другие. Меню
"Project" -> "Add Existing Item". Никогда раньше туда не заглядывал?..


Заглядывал: получаем error LNK2005.
...
Рейтинг: 0 / 0
01.01.2013, 21:20
    #38098447
GermanV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
Basil A. SidorovGermanVОпишите, пожалуйста, конкретно способ добавления файла одного проекта в другой проект.Файл заголовков (.h) - для компиляции, объектные файлы/библиотеки (.obj/.lib) - для компоновки.

Настолько обще, что ответ подходит под половину тем данного форума.
...
Рейтинг: 0 / 0
01.01.2013, 21:23
    #38098449
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
GermanVполучаем error LNK2005.
Из всего текста ошибки ты сумел прочесть только семь букв? Ничего, это бывает...
Сосредоточься. Успокойся. Ничего страшного в чтении нет, даже если буквы незнакомые.
Просто тыкай в кнопки клавиатуры, на которых они нарисованы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.01.2013, 22:03
    #38098465
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
GermanVЗаглядывал: получаем error LNK2005. LNK2005 ?
...
Рейтинг: 0 / 0
01.01.2013, 22:23
    #38098472
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
Basil A. Sidorov http://support.microsoft.com/kb/148652/?
Готов поспорить, что всё гораздо прозаичнее:
http://msdn.microsoft.com/en-us/library/72zdcz6f.aspx пункт 5.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.01.2013, 15:03
    #38098708
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
Господа, поздравляю вас с 2013 сборкой года.

Напоминаю что форум модерируется и основная тема - обсуждение технологий С/C++.
Для всего остального существуют другие форумы.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h? / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]