Главная страница
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.48 MB
Время: 0.087 c
8-1094227655
Artin
2004-09-03 20:07
2004.12.12
Воспроизведения фильма с произвольного места DSPack.


14-1100843607
Mike Kouzmine
2004-11-19 08:53
2004.12.12
Есть ли на форуме обладатели Nokia 7610?


14-1100949851
DelphiN!
2004-11-20 14:24
2004.12.12
Куда программа шлет письмо?


3-1100182927
Katrin
2004-11-11 17:22
2004.12.12
Тригер и переменные


1-1101848922
Kolan
2004-12-01 00:08
2004.12.12
Перенос Series