![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нужна помощь в переводе файлов заголовков из С++ в Delphi [D7, Win95/98, WinME, NT4, Win2k, WinXP]
Zilog_ © (2006-07-05 10:13:00)Ребята! Кто может помочь переписать файлы заголовков DLL библиотеки из под C++ в Delphi. Нужно срочно, а то уволят на ф....г!!!!
Zilog_ (2006-07-05 10:30:00) [21]
typedef void* SIPX_INST ;
typedef unsigned int SIPX_LINE ;
typedef enum SIPX_CALLSTATE_MAJOR
typedef enum SIPX_CALLSTATE_MINOR
typedef void (*CALLBACKPROC)( SIPX_CALL hCall,
SIPX_LINE hLine,
SIPX_CALLSTATE_MAJOR eMajor,
SIPX_CALLSTATE_MINOR eMinor,
void* pUserData) ;
SIPXTAPI_API SIPX_RESULT sipxListenerAdd(const SIPX_INST hInst,
CALLBACKPROC pCallbackProc,
void* pUserData) ;
Я описал так:
var
Form1: TForm1;
SIPX_CALL:cardinal;
SIPX_LINE:cardinal;
procedure EventMessage( SIPX_CALL:cardinal; SIPX_LINE:cardinal; Major:integer; Minor:integer; UserData:pointer);
function sipxLineListenerAdd(const SIPX_INST:pointer; proc:TEventMEssage; pUserData:pointer): HResult; stdcall external 'sipXtapi.dll';
....
result:=sipxLineListenerAdd (phone.header, EventMessage, nil );
Что здесь неправильно?
evvcom (2006-07-05 10:27:00) [22]> вызов происходит нормально, но по завершению работы вылетает
> AV
Наверняка, соглашение о вызове перепутал. Раз вызываются нормально, значит stdcall или cdecl указал, но указал неверно. Сюда запости один примерчик исходного объявления и результата.
Zilog_ (2006-07-05 10:23:00) [23]Пробовал, но так - как в С не силен, то попробовал просто загрузить библиотеку, часть функций получилось перевести (работает без ошибок), но вот c процедурным типом облом - вызов происходит нормально, но по завершению работы вылетает AV, видимо описал не правильно, наверное что-то из стека затирается и появляется ошибка.
PSPF2003 (2006-07-05 10:19:00) [24]Программами для перевода не пробовал пользоваться? Попробуй поискать.
MBo (2006-07-05 10:16:00) [25]http://www.drbob42.com/delphi/headconv.htm
но ручной работы все равно много останется