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

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

Использование C++Builder в Delphi [D4, D7, Win95/98]


xZeus ©   (2003-01-30 12:13:00) 

Можно ли использывать модули написанные на С++ (т.е. *.сpp *.h *.obj файлы) в Delphi приложении не делая из модуля DLL библиотеки? Может создается какой нибуть обёрточный файл или ещё что нибудь? Ведь и Builder и Delphi используют VCL. Ответте пожалуйста очень уж не хочется DLL ваять.


icWasya   (2003-01-31 10:17:00) [1]

Во первых
синтаксис

function _a(x: integer): integer; cdecl; external "<.obj файл>"

подразумевает вызов функции из DLL
во вторых
для OBJ нужно писать

{$Link "<.obj файл>"}
function _a(x: integer): integer; cdecl; external;


в третьих всё равно не получается


wicked   (2003-01-30 14:51:00) [2]


> Можно ли использывать модули написанные на С++ (т.е. *.сpp
> *.h *.obj файлы) в Delphi приложении не делая из модуля
> DLL библиотеки? Может создается какой нибуть обёрточный
> файл или ещё что нибудь? Ведь и Builder и Delphi используют
> VCL. Ответте пожалуйста очень уж не хочется DLL ваять.

можно, сам так делал.....
пишем "обёрточный" файл и подключаем к нему .obj...

в самом сишном файле надо написать процедуры, которые будут интерфейсными для паскалевского модуля, обьявить их надо как
extern "C" int a(int x){}
для того, чтоб билдер отключил для них name mangling....
в паскалёвском модуле обьявляем эти процедуры/функции как
function _a(x: integer): integer; cdecl; external "<.obj файл>"
обратите внимание на знак подчеркивания и модификатор cdecl...


Bobersky   (2003-01-30 13:50:00) [3]




> IMHO нельзя. В Builder"е дельфийские модули - ради бога.


А как это сделать ???


Palladin   (2003-01-30 12:48:00) [4]


> на С++ (т.е. *.сpp *.h *.obj файлы)

*.cpp, *.h: дык ить Си же... оно же не паскаль...
*.obj:при некотором старании наверно удастся подключить...
хотя меня сомнения берут...


uw   (2003-01-30 12:42:00) [5]

IMHO нельзя. В Builder"е дельфийские модули - ради бога.


Наверх

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