powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
19 сообщений из 19, страница 1 из 1
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
    #38098340
GermanV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал два проекта (один 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
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
    #38098341
GermanV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
+ Разумеется оба проекта созданы в рамках одного решения.
...
Рейтинг: 0 / 0
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
    #38098387
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
боже мой, какая каша. И ты еще пытаешься свой менеджер памяти делать???
Читай в учебниках главы: Заголовочные файлы, объектные файлы, раздельная компиляция, компоновщики, библиотеки.
Если кратко:
- .h ты #include в текст своего .cpp.
- .cpp ты компилируешь в .obj при помощи cl
- все полученные .obj ты компонуешь вместе при помощи link
Доступность реализаций проверяется только на последнем этапе. На первом, проверятся только синтаксическая правильность вызовов.
...
Рейтинг: 0 / 0
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
    #38098399
GermanV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owlбоже мой, какая каша. И ты еще пытаешься свой менеджер памяти делать???
Читай в учебниках главы: Заголовочные файлы, объектные файлы, раздельная компиляция, компоновщики, библиотеки.
Если кратко:
- .h ты #include в текст своего .cpp.
- .cpp ты компилируешь в .obj при помощи cl
- все полученные .obj ты компонуешь вместе при помощи link
Доступность реализаций проверяется только на последнем этапе. На первом, проверятся только синтаксическая правильность вызовов.

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

В итоги пришел к корявому решению: в файле 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
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
    #38098415
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GermanV,

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

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

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

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


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

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


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

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

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


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

Настолько обще, что ответ подходит под половину тем данного форума.
...
Рейтинг: 0 / 0
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
    #38098449
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GermanVполучаем error LNK2005.
Из всего текста ошибки ты сумел прочесть только семь букв? Ничего, это бывает...
Сосредоточься. Успокойся. Ничего страшного в чтении нет, даже если буквы незнакомые.
Просто тыкай в кнопки клавиатуры, на которых они нарисованы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
    #38098465
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GermanVЗаглядывал: получаем error LNK2005. LNK2005 ?
...
Рейтинг: 0 / 0
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
    #38098472
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как подключить файл .cpp другого проекта, чтобы сохранить доступность функций файла .h?
    #38098708
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, поздравляю вас с 2013 сборкой года.

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


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