Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Есть описание фукции на С++, как правильно описать на Delphi ?   Найти похожие ветки 

 
jiran   (2004-11-30 15:15) [0]

Есть описание фукции на С++
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])
Помогите плизз, а то горю !


 
KSergey ©   (2004-11-30 15:31) [1]

gc_Openex(var linedev: LINEDEV; devicename: PChar; mode : Integer; var userattr);


 
KSergey ©   (2004-11-30 15:32) [2]

А вы ее хоть пробовали в дельфи использовать, если честно? А то приведенный вами "для дельфи" даже не скомпилится...


 
han_malign ©   (2004-11-30 15:48) [3]

учитывая что не указан ни тип возвращаемого результата, ни компоновка(я так подозревая cdecl) - то гадать тут еще долго можно...


 
jiran   (2004-11-30 15:56) [4]

Пример компилится, просто я С++ не знаю, а делать надо.
Еще у меня есть вопрос, еще одна функция в С++ описана как:
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);


И структура заполнена полным бредом, образумте меня плизз.


 
jiran   (2004-11-30 15:58) [5]

По компановку:

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";



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

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

Наверх




Память: 0.47 MB
Время: 0.024 c
3-1100111086
APXi
2004-11-10 21:24
2004.12.12
Как узнать ID созданной с помощью SQL записи?


3-1100248492
mazepa
2004-11-12 11:34
2004.12.12
пустое поле


14-1101117833
Petr V. Abramov
2004-11-22 13:03
2004.12.12
Постреляем?


14-1101224044
Maverick
2004-11-23 18:34
2004.12.12
алгоритмическая задачка


1-1101842629
tank abot
2004-11-30 22:23
2004.12.12
Izobrazhenija v Richedit