Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

C++ в Delphi [D7, WinXP]


ArtemESC ©   (2005-08-25 14:34:00) 

Можно ли к Delphi проекту добавить модулб C++? Если
да то как?


DrPass   (2005-08-26 10:58:00) [1]


> Чапаев ©   (26.08.05 10:29) [10]
> > практически реально подключить только сишный модуль, ни
> никак не си++...
> Неправда Ваша. Просто экспортируемые функции следует объявлять
> как extern "C", дабы избегнуть name mangling'а. Вроде бы
> ещё это можно сделать, указав компилятору какой-то ключ...

Если ты укажешь extern "C", на выходе ты получишь обычный сишный obj :)


Чапаев   (2005-08-26 10:29:00) [2]

> практически реально подключить только сишный модуль, ни никак не си++...
Неправда Ваша. Просто экспортируемые функции следует объявлять как extern "C", дабы избегнуть name mangling'а. Вроде бы ещё это можно сделать, указав компилятору какой-то ключ...

ЗЫ. Естественно, речь идёт о компиляции борландовским комплятором.


palva   (2005-08-26 10:06:00) [3]

> Defunct ©   (25.08.05 21:43) [3]
> а obj модулем назвать нельзя?

Модуль это ведь наверно что-то вроде Unit? Там должна присутствовать в каком-то виде информация из секции interface. В кто время как obj не содержит информации о типах данных и прототипах функций - голые двоичные данные и код. Правда если ухитриться запихнуть в obj дополнительную информацию... да еще так, чтобы ее понимал дельфийский линкер... Ну эти мечты уже осуществлены в механизме COM.


Digitman   (2005-08-26 09:29:00) [4]


> Defunct ©   (25.08.05 21:43) [3]
> а obj модулем назвать нельзя?


можно.
но вопрос не о obj, а о якобы модулях с исх.текстами на С++

а если таки obj, то см. [7] - С++-компилятор (от Майкрософт) использует иной результирующий формат obj-файлов, отличный от формата используемого Делфи-линкером, так что подключить obj-модули, полученные в результате компиляции С++ текстов в компилирующей среде от MS, к Делфи-проекту не представляется возможным


wicked   (2005-08-26 01:19:00) [5]

замечу, что директивой {$L <имя файла.obj>} практически реально подключить только сишный модуль, ни никак не си++...


palva   (2005-08-25 23:58:00) [6]

DrPass ©   (25.08.05 23:18) [5]
Точно!


DrPass   (2005-08-25 23:18:00) [7]


> {$I <имя файла.obj>}

{$L <имя файла.obj>}
$I - это для вставки текстовых файлов препроцессором


palva   (2005-08-25 22:59:00) [8]

Надо написать модуль на паскале (unit), но вместо реализации функций подключить объектный модуль {$I <имя файла.obj>} Объектный модуль нужно откомпилировать из исходников на C/C++ борландовским компилятором bcc32. Получившийся unit компилируется обычным делфи компилятором (включается в проект). Я опустил много важных подробностей, но общая схема такая.


Defunct   (2005-08-25 21:43:00) [9]

> Digitman

а obj модулем назвать нельзя?


Digitman   (2005-08-25 14:43:00) [10]


> Можно ли


нельзя.

НЕТ там, в "си / си-пласах/шарпах/прочей си-дребедени" никаких "модулей", так что и добавлять как бы нечего.


Reindeer Moss Eater   (2005-08-25 14:38:00) [11]

Project-> Add to Project->Browse

Что мы видим в фильтрах расширений файла?


Наверх

Титульная страница Поиск, карта сайта Написать письмо