Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.11;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.052 c
6-1117067772
dp200
2005-05-26 04:36
2005.09.11
функция ShellExecute


8-1113826592
seregka
2005-04-18 16:16
2005.09.11
Лассо на изображение


9-1116476897
Slavikk
2005-05-19 08:28
2005.09.11
GLScene Как сделать квестовое перемещение


8-1114035775
Fedor
2005-04-21 02:22
2005.09.11
Как DSPack соединить с MotionDetector???


1-1124632605
chortik
2005-08-21 17:56
2005.09.11
scrollbar