Вниз
Скачать: CL | DM;

Подскажите как подключить *.obj от С++ к моему проекту   Найти похожие ветки 

 
myfik   (2005-08-18 23:15) [0]

Добрый вечер! Подскажите пожалуйста как правильно подключать файлы *.obj, созданные ВС++ при компиляции модуля к Delphi-проекту, и как правильно обращатся к функциям в этом файле. А то у меня только функция без параметров нормально работает, всем остальным не получается передать значения параметров. Если можно рабочий пример.
С уважением Mufik


 
DrPass ©   (2005-08-18 23:17) [1]

{$L myfile.obj}
А если не получается работать с параметрами, значит, неправильно модель вызова указал. Если в BC++ использовался __fastcall, то в Delphi не нужно ничего указывать. А так скорее всего стоит указать cdecl


 
myfik   (2005-08-19 06:33) [2]

С первой строчкой понятно. Пробывал по всякому, но модуль откомпиленный в ВС++ не подключается на стадии линковки, пишет что неправильный образ программы для NT. Модуль в стиле С подключается без проблем и процедуру без параметров отрабатывает. Но как только надо добавить параметры выскакивает ошибка что программа не может прочитать данные по адресу и виснет. Трассировка дает что линкёр удалил символы параметра. Пробывал и с __fastcall, но идет только с __Pascal. Вот так на С extern __pascal int AAA(int,int);
extern __pascal int AAA(int A, int B)
{
return (A+B);
}
А так вызываю на Pascal {$R *.dfm}
{$L File1.obj}

function AAA(A,B: integer):integer;external;

procedure TForm1.Button1Click(Sender: TObject);
var
A,B,C : integer;
begin
A:=1;
B:=3;
C:=AAA(A,B);
Edit1.Text:=IntToStr(C);
end;


 
myfik   (2005-08-21 22:40) [3]

Вчера снова попробывал то же с __fastcall, так теперь почему то Паскаль ругается что я неправильно обьявляю фуекцию, до этого такое описание транслятор пропускал. Может быть это глюк моей копии Дельфи?


 
DrPass ©   (2005-08-21 23:14) [4]

Наверное, правильно будет
extern "C" __fastcall int AAA(int A, int B)
Компилятор С++ ведь балуется переименованием


 
myfik   (2005-08-21 23:41) [5]

Хорошо попробую, но я кажется так уже обьявлял, столько вариантов перебрал что уже и не помню, но не идет и всё.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
1-1124560800
TerminalHead
2005-08-20 22:00
2005.09.11
Серис для WinXP


8-1114516145
Davinchi
2005-04-26 15:49
2005.09.11
где взять компонент сжатия MP3???


14-1124216237
cyborg
2005-08-16 22:17
2005.09.11
Missing operation system


3-1122993594
Sergei9
2005-08-02 18:39
2005.09.11
формат поле


8-1113473950
Venom Spawn
2005-04-14 14:19
2005.09.11
Raytracing




   Наверх