Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Trukhanov_VP
37 / 37 / 5
Регистрация: 28.03.2013
Сообщений: 278
Записей в блоге: 2
#1

Несколько *.cpp в одном проекте - C++

30.07.2013, 14:01. Просмотров 1579. Ответов 17
Метки нет (Все метки)

Добрый день! В приложении требуется несколько *.cpp как выполнить код каждой *.cpp ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2013, 14:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Несколько *.cpp в одном проекте (C++):

Несколько cpp файлов в проекте - C++
Доброго времени суток ! Есть проект и в нем 2 cpp файла: Main.cpp и BinaryNumber.cpp В последнем файле создан класс и его методы....

Как связать два cpp файла в одном проекте (visual studio 2010) - C++
Есть два программы: одна создает файл.txt, вторая читает из него данные и выводит на экран. создает файл #include <iostream> ...

Несколько задач в одном проекте - C++
Вопрос такой. Даны несколько очень лекгих задач . Решил легко. Хотел бы спросить, можно ли их объединить в один проект или для каждой...

в проекте - надо в проекте win32api вынести все в другой *cpp* а не получаеться - C++
определил функцию в другом спп и в основном ругается компилятор

Использование функции cpp в проекте c - C++
Есть сишный проект, понадобилось прикрепить к нему один готовый плюсовый модуль. Схематичный вид этого модуля: //module.cpp ...

Два файла .cpp в проекте - C++
Файлы DayOfWeek и main(откуда вызываются методы из DayOfWeek). Пишет ошибку на скрине,что не так? И что такое #include <stdexcept>? ...

17
SatanaXIII
Супер-модератор
Эксперт С++
5689 / 2744 / 258
Регистрация: 01.11.2011
Сообщений: 6,699
Завершенные тесты: 1
30.07.2013, 14:14 #2
Цитата Сообщение от Trukhanov_VP Посмотреть сообщение
В приложении требуется несколько *.cpp
Первый и основной вопрос - зачем?
Цитата Сообщение от Trukhanov_VP Посмотреть сообщение
как выполнить код каждой *.cpp ?
В каждом .cpp должен быть подключен через #include свой .h. Так же все .h должны быть подключены в вызывающем модуле.
0
Fyret
200 / 186 / 20
Регистрация: 30.07.2013
Сообщений: 392
30.07.2013, 14:21 #3
Упрощенно каждый cpp файл можно считать единицей трансляции (это подсказка для гугления ).
Тут немного обсуждалось: Перенос в другую единицу трансляции

И совершенно не обязательно у каждого cpp должен быть свой хедер.
0
iel
1 / 1 / 0
Регистрация: 30.07.2013
Сообщений: 15
30.07.2013, 17:12 #4
Цитата Сообщение от Trukhanov_VP Посмотреть сообщение
как выполнить код каждой *.cpp ?
Никак. Вопрос некорректен. "*.cpp" при правильном содержании можно скомпилировать в объектный файл (машинный код), а один или более объектных файлов можно скомпоновать в один исполняемый файл, указав компоновщику с какого места (процедуры) в этой куче начать исполнение.
0
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2013, 17:18 #5
Цитата Сообщение от Trukhanov_VP Посмотреть сообщение
Добрый день! В приложении требуется несколько *.cpp как выполнить код каждой *.cpp ?
Должны быть включены в проект и находиться в папке проекта.
0
iel
1 / 1 / 0
Регистрация: 30.07.2013
Сообщений: 15
30.07.2013, 17:40 #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Должны быть включены в проект и находиться в папке проекта.
Ошибка начинающих программистов в том, что используют усложняющую Студию/другую IDE для "Hello World!" вместо батника для сборки. Зачем эти заморочки? Не проще сделать что-то типа:
Bash
1
2
cl.exe /c *.cpp
link.exe /out:some.exe *.obj kernel32.lib
Вообще Студия только для написания и редкого дебага нужна, ковыряться в менюшках чтобы настроить сборку - мазохизм.
0
alsav22
30.07.2013, 17:58
  #7

Не по теме:

Цитата Сообщение от iel Посмотреть сообщение
Не проще сделать что-то типа:
Для начинающего? Моё мнение, что не проще. У других, наверное, может быть другое мнение. Споры об этом порядком надоели и не имеют никакого смысла. ТС не уточнил в чём он программирует, приходится додумывать.

2
Trukhanov_VP
37 / 37 / 5
Регистрация: 28.03.2013
Сообщений: 278
Записей в блоге: 2
31.07.2013, 08:48  [ТС] #8
Я начал работать в студии совсем недавно. Я конечно взял учебник и по шагам разобрал типовые простенькие примерчики, а вот когда требуется работать с winapi, с вызовом dll (причем не одной) и проектами в которых по 2 и более "*.срр" то становится сложновато для новичка-разработчика данной среды..
0
SatanaXIII
Супер-модератор
Эксперт С++
5689 / 2744 / 258
Регистрация: 01.11.2011
Сообщений: 6,699
Завершенные тесты: 1
31.07.2013, 09:10 #9
Trukhanov_VP, да WinAPI с dll вообще и не для новичка тоже не просто.
У вас какие-нибудь конкретные вопросы есть? Типа "я вот так вот подключаю то-то и то-то, для того-то и для того-то. Подключаю вот таким вот образом. Выдает следующие ошибки."? Или вы так, в общем рассуждаете о теории модульного программирования?
0
Trukhanov_VP
37 / 37 / 5
Регистрация: 28.03.2013
Сообщений: 278
Записей в блоге: 2
31.07.2013, 09:39  [ТС] #10
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Trukhanov_VP, да WinAPI с dll вообще и не для новичка тоже не просто.
У вас какие-нибудь конкретные вопросы есть? Типа "я вот так вот подключаю то-то и то-то, для того-то и для того-то. Подключаю вот таким вот образом. Выдает следующие ошибки."? Или вы так, в общем рассуждаете о теории модульного программирования?
Если быть точным то работаю я с winscard.dll. С winscard.dll я работал в Delphi, работал с картами ACOS, все получилось, молодец. А сейчас работаю с картами EMV. Обычной winscard.dll не хватило и пришлось запросить библиотеки. Прислали мне dll, внутри которых описаны функции winscard.dll и других dll( я не очень понял как это воспринять, но сложилось такое чувство, что dll составные что ли).
Вот кусок dll которую мне прислали: SCardConnectA E SCardStatusA
SCardEstablishContext  SCardCancel G SCardTransmit : SCardReconnect SCardDisconnect < SCardReleaseContext WinSCard.dll  cmnMemCopy  cmnMemSet  bin2hex HAL_Common.dll  protWriteEx HAL_Protocol.dll (memcpy ,memset MSVCR110.dll K_crt_debugger_hook Є__crtUnhandledException ©__crtTerminateProcess s__CppXcptFilter _amsg_exit дfree Ќ_malloc_crt ю_initterm я_initterm_e |_lock ж_unlock +_calloc_crt ¬__dllonexit "_onexit ђ__clean_type_info_names_internal p_except_handler4_common ѓIsDebuggerPresent €IsProcessorFeaturePresent <EncodePointer DecodePointer <QueryPerformanceCounter $GetCurrentProcessId (GetCurrentThreadId фGetSystemTimeAsFileTime .DisableThreadLibraryCalls KERNEL32.dll HAL_SCReader.dll crAPDU crCloseSession crDeinit crInit crOpenSession


Так вот, так же имеется пример реализации(использования dll которую я получил), но подключив dll к проекту, у меня Студия ругается на функции ScardconnectA и т.д. которые есть в "*.с", но нигде не описаны, LNK1120 неразрешенный внешний символ.
Описаны в Хэдере и экспортируются в "*.def" только: crAPDU crCloseSession crDeinit crInit crOpenSession. Я проверял наличие функции через программу, которая выводит список функции dll, там были только crAPDU crCloseSession crDeinit crInit crOpenSession.
0
SatanaXIII
Супер-модератор
Эксперт С++
5689 / 2744 / 258
Регистрация: 01.11.2011
Сообщений: 6,699
Завершенные тесты: 1
31.07.2013, 09:54 #11
А у вас и так не получится посмотреть реализацию dll. В том ее и суть. Вам доступны только названия методов, описанных в ней. Если студия ругается, то скорее всего требуемой функции там и нет.
Но только я никак не пойму при чем тут dll и "*.c"?
0
Trukhanov_VP
37 / 37 / 5
Регистрация: 28.03.2013
Сообщений: 278
Записей в блоге: 2
31.07.2013, 10:01  [ТС] #12
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Но только я никак не пойму при чем тут dll и "*.c"?
Это я Вам обший вид проблемы изложил, которую пытаюсь решить более двух недель и задаю различные вопросы по мере возникновения

Добавлено через 4 минуты
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А у вас и так не получится посмотреть реализацию dll
Тогда зачем вообще создавать какие-то "нерабочие" проекты и впихивать их в SDK. Можно было простой справкой обойтись, в которой описать методы, функции, струкруты и т.п.
0
SatanaXIII
Супер-модератор
Эксперт С++
5689 / 2744 / 258
Регистрация: 01.11.2011
Сообщений: 6,699
Завершенные тесты: 1
31.07.2013, 10:17 #13
Цитата Сообщение от Trukhanov_VP Посмотреть сообщение
Это я Вам обший вид проблемы изложил, которую пытаюсь решить более двух недель
То есть -
Цитата Сообщение от Trukhanov_VP Посмотреть сообщение
В приложении требуется несколько *.cpp как выполнить код каждой *.cpp ?
Вы выполнили все рекомендации, но все равно не можете сочленить несколько файлов, так? какие конкретно ошибки? Прям по пунктам: "Я делаю так-то так-то. Ругается вот так вот. Не получается вот такой момент."

Цитата Сообщение от Trukhanov_VP Посмотреть сообщение
Тогда зачем вообще создавать какие-то "нерабочие" проекты
Они рабочие. Я говорю за то, что до реализации библиотечных функций вы не доберетесь. А до описания пожалуйста. Список найти можно, а как они работают - дудки.

Не по теме:

Цитата Сообщение от Trukhanov_VP Посмотреть сообщение
и задаю различные вопросы по мере возникновения
5.16

0
iel
1 / 1 / 0
Регистрация: 30.07.2013
Сообщений: 15
31.07.2013, 11:19 #14
Цитата Сообщение от Trukhanov_VP Посмотреть сообщение
Если быть точным то работаю я с winscard.dll. С winscard.dll я работал в Delphi, работал с картами ACOS, все получилось, молодец. А сейчас работаю с картами EMV. Обычной winscard.dll не хватило и пришлось запросить библиотеки. Прислали мне dll, внутри которых описаны функции winscard.dll и других dll( я не очень понял как это воспринять, но сложилось такое чувство, что dll составные что ли).
Вот кусок dll которую мне прислали: SCardConnectA E SCardStatusA
SCardEstablishContext  SCardCancel G SCardTransmit : SCardReconnect SCardDisconnect < SCardReleaseContext WinSCard.dll  cmnMemCopy  cmnMemSet  bin2hex HAL_Common.dll  protWriteEx HAL_Protocol.dll (memcpy ,memset MSVCR110.dll K_crt_debugger_hook Є__crtUnhandledException ©__crtTerminateProcess s__CppXcptFilter _amsg_exit дfree Ќ_malloc_crt ю_initterm я_initterm_e |_lock ж_unlock +_calloc_crt ¬__dllonexit "_onexit ђ__clean_type_info_names_internal p_except_handler4_common ѓIsDebuggerPresent €IsProcessorFeaturePresent <EncodePointer DecodePointer <QueryPerformanceCounter $GetCurrentProcessId (GetCurrentThreadId фGetSystemTimeAsFileTime .DisableThreadLibraryCalls KERNEL32.dll HAL_SCReader.dll crAPDU crCloseSession crDeinit crInit crOpenSession


Так вот, так же имеется пример реализации(использования dll которую я получил), но подключив dll к проекту, у меня Студия ругается на функции ScardconnectA и т.д. которые есть в "*.с", но нигде не описаны, LNK1120 неразрешенный внешний символ.
Описаны в Хэдере и экспортируются в "*.def" только: crAPDU crCloseSession crDeinit crInit crOpenSession. Я проверял наличие функции через программу, которая выводит список функции dll, там были только crAPDU crCloseSession crDeinit crInit crOpenSession.
Bash
1
dumpbin.exe /EXPORTS winscard.dll
Ищем в списке нужную функцию, добавляем её правильно в winscard.def, потом
Bash
1
lib.exe /DEF:winscard.def /OUT:winscard.lib
и добавляем winscard.lib к компоновщику в настройках проекта
0
Nameless One
Эксперт С++
5783 / 3432 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
31.07.2013, 11:31 #15
Цитата Сообщение от SatanaXIII Посмотреть сообщение
В каждом .cpp должен быть подключен через #include свой .h. Так же все .h должны быть подключены в вызывающем модуле.
Строго говоря, это необязательно. Можно обойтись и без заголовочных файлов, если вручную объявить прототипы функций и используемые структуры в соответствующих единицах трансляции. Хотя, конечно, это дико неудобно (так как, по сути, мы делаем за препроцессор его работу), и никто так не делает.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2013, 11:31
Привет! Вот еще темы с ответами:

Подключение в проекте .hpp и .cpp файлов - C++
Добрый день! Среда разработки Code Blocks 13.12 Компилятор GNU GCC В проекте существует 3 файла в проекте - main.cpp, SW229.cpp и...

Создание DLL и EXE в одном проекте - C++
Привет всем, я хочу создать большой проект и встала одна очень маленькая проблема, я чтобы не запутаться создал такую систему несколько...

Код в одном проекте работает, в другом нет - C++
Добрый вечер.у меня возникла такая проблема:я писала функцию по удалению оценок в одном проекте (пишу на Visual Studio 2012),а вся...

Несколько cpp модулей - C++
разрабатывая один проект наталкнулся на такую фичу/баг unit1.h int al; unit1.cpp #include &quot;windows.h&quot; #include...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru