![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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
Что мы видим в фильтрах расширений файла?