![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
пытаюсь вызвать метод класса из метода другого класса.
включаю хэдер {файл class2.cpp} #include "Class1.h" void Class2::DoFunc() { Class1 test; test.calculate(); } при попытке объявления или использования методов первого класса получаю error LNK2001: unresolved external symbol я так понимаю тут дело в линковке но .h файл я подключил, а .lib вроде как и не должен собираться. я собираю dll-ку, а файл Class1.h находится в главном проекте. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
а файл class1.cpp подключил? в Class1.h поди только объявления находятся, а тело функций в class1.cpp, верно?
|
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
а как его подключать явно?
обычно .h и .cpp сами по имени линкуются как мне кажется. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
именно что кажется.
все .cpp надо включать в проект явно. |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
всмысле продублировать включение *.cpp файла через студию?
(помоему в таком случае, его надо будет и физически продублировать). т.е. видимость cpp файла у студии только в пределах проекта,а не солюшена? не очень красивое решение. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
не продублировать, а включить если файл уже есть в другом проекте в том же solution, надо сделать зависимость одного проекта от другого, но это скорее всего означает, что проект-донор эти статическая или динамическая библиотека если покажете проект, можно будет сказать точнее |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
вот в этом вся и загвоздка. Когда ты собираешь dll, то она не знает о существовании главного проекта. В таких случаях все общие классы выделяют в отдельную dll и линкуют ее ко всем проектам. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |