| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > [Linker Error] Unresolved external ' |
| Автор: Gunslinger 10.10.2008, 12:06 | ||
Новая ошибка.
Пишет [Linker Error] Unresolved external 'myExcel::InitMyExcel()' referenced from D:\ТЕСТИРУЮ КЛАСС MYEXCEL\UNIT1.OBJ и подозреваю так будет со всеми методами. Может каких билдеровских директив в myExcel добавить нужно? В гугле говорят, что в через Project\Add to project нужно что-то добавить из lib. Но у меня ни компонентов, ни dll - только функции. |
| Автор: azesmcar 10.10.2008, 12:37 |
| может покажешь файл myExcel.h и его реализацию или это тайна? а именно обьявление и реализация функции InitMyExcel. Добавлено через 37 секунд кстати не забыл включить myExcel.cpp в проект? |
| Автор: Gunslinger 10.10.2008, 13:31 | ||||
| azesmcar, не знал. Получается main - это файл проекта. Тогда зачем хедер добавлять в unit1.cpp? Это нюанс билдера? Теперь вместо ошибки линкера другие: E2293 ) expected, да E2303 Type name expected. +Нужно comobj.hpp объявлять в юнит1? myExcel.h:
myExcel.cpp (на всякий случай):
|
| Автор: azesmcar 10.10.2008, 14:02 |
| как зачем? а как он по твоему догадается что этот файл компилировать нужно? на какой строке он ошибку выдает? коментарий какой нибудь напиши |
| Автор: Gunslinger 10.10.2008, 14:37 |
| на листинге myExcel.h написал. Цветом выделить не получилось. Строки 9 и 10. Курсор за & становится. |
| Автор: volvo877 10.10.2008, 14:48 |
| Gunslinger, ситуация: Билдер начинает компилировать файл myExcel.cpp, и встречает тип String, который описывается в файле sysmac.h ... Что делать компилятору (без #include <system.hpp> он и не догадывается, что String - это тип)? То, что он и делает: выдавать сообщения об ошибках... Подключи system.hpp и все будет в порядке... |
| Автор: Gunslinger 10.10.2008, 15:26 |
| volvo877, спасибо, помогло. Теперь уточнения: 1. В консольнике (я студентил только в турбо с) класс объявляется прописыванием только в main файл. В билдере же хедер нужно прописать и в юнит1.спп, и в проект. Проект в билдере является аналогом main-файла? И если да, то зачем прописвать хедер еще и в юнит1? 2. myExcel.cpp - это реализация h файла. Логично прописывать инклуды (system.h) в хедере, имхо. Но в хедере не заработало. Это логика С++, прописывать сторонние заголовки в реализации? 3. Если один и тот же хедер прописан и в подключаемом классе, и в другом юните, то он загрузится в память дважды или компилятор не даст? |