Re[11]: DLL в Delphi и C++Builder
От: Аноним  
Дата: 21.02.02 09:43
Оценка:
Здравствуйте grenader, Вы писали:

G>И что же функции func делать с полученными указателями? Так что языки смешать не получиться :(((


Уже получилось:
extern "C" __declspec(dllexport) DWORD __stdcall func(AROI, AComponent: DWORD);

function func(AROI, AComponent: DWORD) : DWORD; stdcall; external 'my.dll';

....
dw := ROISelectComponent3(DWORD(self), DWORD(self));
,...

Спасибо Владимиру!
Re[12]: DLL в Delphi и C++Builder
От: Аноним  
Дата: 21.02.02 10:07
Оценка:
Надо сказать, что если этой функции передать форму из Delphi 3
А>extern "C" __declspec(dllexport) DWORD __stdcall func(AROI, AComponent: DWORD);

то вот такой код отказывается работать:
DWORD __stdcall func(AROI, AComponent: DWORD) {
TComponent* cmp = new TComponent(this);
comp->Assign((TComponent*)AComponent);
return comp;
}

т.е. Assign не делает то, что положено, вылетает с AV
возможно, причина тому разные версии VCL у Delphi 3 и Builder 5.
Re[7]: DLL в Delphi и C++Builder
От: Игорь Вартанов Ниоткуда  
Дата: 26.02.02 09:59
Оценка:
Здравствуйте Аноним, Вы писали:

А>А через cdecl и _SomeFunc у меня не получилось...


Сомневаюсь, что это еще кому-то интересно, но "завтра" когда-то все же наступает, поэтому рад вам всем сообщить, что я успешно проверил свои соображения по поводу __cdecl и __stdcall: собрал по приведенным мною рецептам длль в CBuilder'е и заюзал ее в Delphi. It works fine.
---
С уважением,
Игорь
Re[8]: DLL в Delphi и C++Builder
От: Аноним  
Дата: 28.02.02 17:38
Оценка:
Здравствуйте Игорь Вартанов, Вы писали:

ИВ>Здравствуйте Аноним, Вы писали:


А>>А через cdecl и _SomeFunc у меня не получилось...


ИВ>Сомневаюсь, что это еще кому-то интересно, но "завтра" когда-то все же наступает, поэтому рад вам всем сообщить, что я успешно проверил свои соображения по поводу __cdecl и __stdcall: собрал по приведенным мною рецептам длль в CBuilder'е и заюзал ее в Delphi. It works fine. :-)


Значит я где-то сглючил... :) Надо будет перепроверить.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.