Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
3-1123074767
FireMan_Alexey
2005-08-03 17:12
2005.09.18
Не подскажите как можно программно установить INTERBASE


14-1124687175
rentgen
2005-08-22 09:06
2005.09.18
Кому не сложно прокоментировать оформление программы?


1-1124700897
SpyBoy
2005-08-22 12:54
2005.09.18
размер каталога вместе с содержимым


1-1125238566
Profi
2005-08-28 18:16
2005.09.18
Проблема при работе с TreeView


1-1124892852
Dysan
2005-08-24 18:14
2005.09.18
как в файл строки в начало дописывать?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский