![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть описание фукции на С++, как правильно описать на Delphi ? [D7, Win2k]
jiran © (2004-11-30 15:15:00)Есть описание фукции на С++
gc_Openex(LINEDEV *linedev, char *devicename, int mode, void *usrattr);
- Функция вызывается из dll, есть описание только но С++, но надо обратиться из delphi, я пытаюсь описать:
gc_Openex(LINEDEV : Pointer,devicename : array of char,mode : Integer;userattr : Pointer);
И по ходу дела это не правильно ! Помогите плизз,как правильно описать эту функцию на Delphi ?
Из С++ кода её вызывают как:
gc_Openex(&port[index].ldev, port[index].devname,1,(void *)&port[index])
Помогите плизз, а то горю !
jiran (2004-11-30 15:58:00) [1]По компановку:
function gc_OpenEx(var linedev : linedev;devicename : PChar; mode : Integer;var usrattr) : Integer;cdecl;external 'c:\Program Files\Dialogic\LIB\libgc.dll' name 'gc_OpenEx';
function gc_GetMetaEvent(var metaeventp) : Integer;external 'c:\Program Files\Dialogic\LIB\libgc.dll' name 'gc_GetMetaEvent';
jiran (2004-11-30 15:56:00) [2]Пример компилится, просто я С++ не знаю, а делать надо.
Еще у меня есть вопрос, еще одна функция в С++ описана как:
typedef struct {
long magicno;
unsigned long flags;
void *evtdatap;
long evtlen;
long evtdev;
long evttype;
LINEDEV linedev;
CRN crn;
void *extevtdatap;
void *usrattr;
int cclibid;
int rfu1;
} METAEVENT, *METAEVENTP;
// Функция
int gc_GetMetaEvent(METAEVENT *metaeventp);
Функция должна заполнять структуру METAEVENT.
Что я пытаюсь делать (скорее всего неправильно, плизз помогите)
type METAEVENT=record
magicno : Longint;
flags : Longword;
evtdatap : Pointer;
evtlen : Longint;
evtdev : Longint;
evttype : Longint;
linedev : LINEDEV;
crn : CRN;
extevtdatap : Pointer;
usrattr : Pointer;
cclibid : Integer;
rfu1 : Integer;
end;
type METAEVENTP = ^METAEVENT;
// Описываю её как
function gc_GetMetaEvent(var metaeventp) : Integer;
// И пытаюсь использовать как
gc_GetMetaEvent(@metaevnt);
И структура заполнена полным бредом, образумте меня плизз.
han_malign (2004-11-30 15:48:00) [3]учитывая что не указан ни тип возвращаемого результата, ни компоновка(я так подозревая cdecl) - то гадать тут еще долго можно...
KSergey (2004-11-30 15:32:00) [4]А вы ее хоть пробовали в дельфи использовать, если честно? А то приведенный вами "для дельфи" даже не скомпилится...
KSergey (2004-11-30 15:31:00) [5]gc_Openex(var linedev: LINEDEV; devicename: PChar; mode : Integer; var userattr);