![]() |
|
|
![]()
|
|
| Homskiy |
|
||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.6.2008 Репутация: нет Всего: нет |
коротко. Есть проект написаный на С, его надо присобачить к проекту который пишется на C++, Builder 5.
В проекте, который на С, в одном из хидеров есть строчки объявления типов и функции. Эти типы есесно используются в этом проекте. Но они конфликтуют с неймспесом System:
ошибки:
Здесь - http://forum.vingrad.ru/forum/topic-216551.html - мне посоветовали задать этот вопрос в разделе Билдера, вот и спрашиваю. Как я понял, есть возможность отключить использование неймспейса System по умолчанию. В опциях проєкта ничего похожего не нашел. Я попробовал сделать такое:
и в пустом проекте я добавил
Оно откомпилилось нормально. Но когда я добавил вызов некоторых функций из этого проекта, то получил ошибки линкера примерного такого содержания:
Хоть в параметрах проекта я указал директории либов и инклудов, оно их че-то не увидело... Потом я через Add to Project (shift+F11) добавил все си-шники проекта который я юзаю... После чего появилась ошибка в link-includes.h на строчку
Вот... Надеюсь вы подскажите как сей гемор обойти. ЗЫ: этот проект можно скачать здесь - http://www.link.cs.cmu.edu/link/ а здесь - http://www.link.cs.cmu.edu/link/api/index.html - можно найти простой пример программы с использованием этого проекта, который я пытался скомпелировать... |
||||||||||||
|
|||||||||||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
паттерн адаптор тебе поможет...
|
|||
|
||||
| Homskiy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.6.2008 Репутация: нет Всего: нет |
уу... Не хочу ошибиться, но паттерны это вроде типа шаблоны проектирования... И как оно тут поможет?..
|
|||
|
||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
это паттерн, который позволяет преобразовать интерфейс, в данном случае все решается с помощью идиомы pimpl
adapter.h
adapter.cpp
потом в программе подключаем adapter.h если не делать интерфейс в виде класса, то можно еще проще, в хэдере объявить функции в срр реализовать их... |
||||
|
|||||
| Homskiy |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.6.2008 Репутация: нет Всего: нет |
Спасибо, эта ошибка исчезла
Теперь линкер матерится неистовым голосом... Мож поможет кто.. ошибка стандартная (Unresolved external symbol referenced from module), только я не пойму че она появляется - вроде все правильно делал. Чужой проект находится в директории D:\asdf\LINKGRAMPARSER\ его хидеры: D:\asdf\LINKGRAMPARSER\include\ и си-шные файлы: D:\asdf\LINKGRAMPARSER\src\ моя прога (с адаптером) находятся тута: D:\asdf\first\ в этом линк-парсере есть один, главный, хидер - link-includes.h (он содержит перечень почти всех хидеров парсера), его я затулил в срр-шный файл адаптера, как в примере. В функцию адаптера затулил то, что мне надо (пример с официального сайта этого парсера), и в основной проге проекта (обычная формочка с кнопкой и лейблом) вызываю эту функцию адаптера :
в настройках проекта (в разделе директорий) я прописал инклуды: D:\asdf\LINKGRAMPARSER\include\ (+ на всяк случай) D:\asdf\LINKGRAMPARSER\src\ и либы: D:\asdf\LINKGRAMPARSER\src\ После этого линкер нифига не нашел. Тоесть к проекту не добавился ни один си-шный файл. Я добавил их через Add to Project. Ситуация тоже не очень поменялась. Открыв класс-эксплорер я смотрю что оно все структуры видит и все функции тоже. Но только декларейшены. А вот реализаций че-то не видит... После этого я прошелся по всем си-шным файлам и там где было
поменял на (ну мож не видит - фиг его знает)
Результат не изменился. Что я не так сделал или что надо еще сделать? Подскажите, плз. |
||||||
|
|||||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
нужно либо скомпилировать Си-шную библиотеку в lib и подключить к проекту, либо подключить к проекту все с файлы библиотеки
1-й вариант предпочтительней |
|||
|
||||
| Homskiy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.6.2008 Репутация: нет Всего: нет |
фиг. не помогло. Решил запустить под turbo C. Но у того тоже линкер матюкается.. [censored 6], короче.
|
|||
|
||||
| Homskiy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.6.2008 Репутация: нет Всего: нет |
Ура!! Сделал!
Спасибо всем за внимание |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |