Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

Есть описание фукции на С++, как правильно описать на 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.035 c
1-1101484613
GOgo
2004-11-26 18:56
2004.12.12
Заставка


3-1100074594
Serguar
2004-11-10 11:16
2004.12.12
Медленное открытие таблицы Paradox


14-1100892299
panov
2004-11-19 22:24
2004.12.12
http://delphibase.endimus.ru/ - поддерживают до сих пор?


1-1101710156
maxistent
2004-11-29 09:35
2004.12.12
кард-ридеры


1-1101713473
KOSH
2004-11-29 10:31
2004.12.12
Цвет в stringride





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский