Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

C++ в Delphi   Найти похожие ветки 

 
ArtemESC   (2005-08-25 14:34) [0]

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


 
Reindeer Moss Eater ©   (2005-08-25 14:38) [1]

Project-> Add to Project->Browse

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


 
Digitman ©   (2005-08-25 14:43) [2]


> Можно ли


нельзя.

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


 
Defunct ©   (2005-08-25 21:43) [3]

> Digitman

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


 
palva ©   (2005-08-25 22:59) [4]

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


 
DrPass ©   (2005-08-25 23:18) [5]


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

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


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

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


 
wicked ©   (2005-08-26 01:19) [7]

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


 
Digitman ©   (2005-08-26 09:29) [8]


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


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

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


 
palva ©   (2005-08-26 10:06) [9]

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

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


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

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

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


 
DrPass ©   (2005-08-26 10:58) [11]


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

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



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
3-1122989873
Oleg_S
2005-08-02 17:37
2005.09.18
BDEADMIN виснет


1-1125159399
lkz
2005-08-27 20:16
2005.09.18
Оболочка для вопросов-ответов


14-1125094288
ronyn
2005-08-27 02:11
2005.09.18
Pack Man


14-1124697571
alles
2005-08-22 11:59
2005.09.18
Нужна утилитка


1-1124115313
MegaVolt
2005-08-15 18:15
2005.09.18
MainMenu + Images = странности