On-line: Alex_Cher, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
администратор




Пост N: 1480
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.03.10 12:12. Заголовок: Cipher 8001 [SDK]


Что то не получается прицепить к Xharbour.
Sdk сложил тут _http://files.mail.ru/1UA82O

Тестовый пример такой.
 
ANNOUNCE RDDSYS

Proc main()
? CPH_OPENIRCOM(1,115200)
? CPH_CLOSEIRCOM()

return
#pragma BEGINDUMP

#include "hbapi.h"
#include "irlib.h"

HB_FUNC( CPH_OPENIRCOM )
{
hb_retnl( OpenIrCom( hb_parnl(1), hb_parnl(2)) );
}



HB_FUNC( CPH_CLOSEIRCOM )
{
hb_retnl( CloseIrCom() );
}

#pragma ENDDUMP



Что не так делаю ?

ЗЫ
При сборке ругается на строки из irlib.ch , DllExport void WINAPI WriteIrCom (LPSTR lpStr); и тд
Из irlib.dll сделал (implib) Irlib.lib которую и линкую

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 12 [только новые]


Администратор




Пост N: 1375
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.03.10 14:00. Заголовок: irlib.h у меня компи..


irlib.h у меня компилируется без ошибок

А функции должны быть такими:

HB_FUNC( CPH_OPENIRCOM )
{
hb_retnl( (LONG) OpenIrCom( hb_parnl(1), hb_parnl(2)) );
}

HB_FUNC( CPH_CLOSEIRCOM )
{
CloseIrCom();
hb_ret();
}


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1481
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.03.10 14:12. Заголовок: Pasha пишет: irlib...


Pasha пишет:

 цитата:
irlib.h у меня компилируется без ошибок



У меня вот чего выдает

 
xHarbour Compiler build 1.1.0 (SimpLex) (Rev. 6225)
Copyright 1999-2008, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'ircp.PRG'...

Lines 9, Functions/Procedures 2
Generating C source output to 'obj\ircp.c'...
Done.

Building object module for 'obj\ircp.c'
using C compiler 'BCC32' as defined in 'c:\x\bin\harbour.cfg'...
Exec: BCC32 -c -D__EXPORT__ -Ic:\x\include -d -Lc:\x\lib -oobj\ircp.obj obj\ircp.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
obj\ircp.c:
Error E2141 irlib.h 3: Declaration syntax error
Error E2141 irlib.h 13: Declaration syntax error
Error E2449 irlib.h 26: Size of 'WINAPI' is unknown or zero
Error E2141 irlib.h 26: Declaration syntax error
Error E2449 irlib.h 34: Size of 'WINAPI' is unknown or zero
Error E2141 irlib.h 34: Declaration syntax error
Error E2141 irlib.h 42: Declaration syntax error
Error E2141 irlib.h 52: Declaration syntax error
Error E2141 irlib.h 64: Declaration syntax error



Pasha пишет:

 цитата:
А функции должны быть такими:


Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1376
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.03.10 14:16. Заголовок: перед irlib.h надо в..


перед irlib.h надо вставить

#include "windows.h"


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1482
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.03.10 14:23. Заголовок: Pasha Заработало ;)..


Pasha
Заработало ;) Спасибо !
Как правильно оформить функции ?
WriteIrCom
ReadIrCom
ShowErrorMessage
А то чую напишу на код на С.....

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1377
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.03.10 14:29. Заголовок: HB_FUNC( CPH_WRITEIR..


HB_FUNC( CPH_WRITEIRCOM )
{
WriteIrCom( hb_parc(1) );
hb_ret();
}

HB_FUNC( CPH_READIRCOM )
{
hb_retc( ReadIrCom( ) );
}


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1378
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.03.10 14:31. Заголовок: HB_FUNC( CPH_SHOWERR..


HB_FUNC( CPH_SHOWERRMSG )
{
hb_retnl( ShowErrorMessage( hb_parnl(1) ) );
}


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1483
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.03.10 14:39. Заголовок: Pasha Спасибо ! Вс..


Pasha
Спасибо !

Все чудно только
? CPH_READIRCOM() , ни чего не выдает и вываливается на Timeout (5 секунд)
Если считывать родной прогой от него , все OK

 
? CPH_OPENIRCOM(1,115200) // 1992
? CPH_READIRCOM() // Timeout хотя терминал включен в режим передачи данных
? CPH_CLOSEIRCOM() // Nil



Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1379
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.03.10 14:50. Заголовок: можно еще проверять ..


можно еще проверять на пустую строку:

HB_FUNC( CPH_READIRCOM )
{
char * szStr = ReadIrCom( );
hb_retc( szStr ? szStr : "" );
}


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1484
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.03.10 14:57. Заголовок: Pasha пишет: можно ..


Pasha пишет:

 цитата:
можно еще проверять на пустую строку:


Не помогло.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1380
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.03.10 15:05. Заголовок: из комментария к это..


из комментария к этой функции

* Returns A pointer to a null-terminated string.
* If the function fails or time out (5 sec), it returns NULL.
* Note the return string is ended with a return character.

вроде бы правильно, тип LPSTR WINAPI возвращается как строка
пока непонятно, почему не работает

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1381
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.03.10 15:13. Заголовок: Так выдается сообщен..


Так выдается сообщение об ошибке ?

там же есть сырцы

вот эта функция:

DllExport LPSTR WINAPI ReadIrCom (void) 
{
DWORD i, nChar, nCount;
BYTE cRet;
DWORD dwTime0;

dwTime0 = GetTickCount ();
nCount = 0; // reset char counter
cRet = 0;

while (cRet != '\r') // while not get the return char keep on reading
{
if (ReadFile (hComm, cInBuf, 1, &nChar, NULL))
{
for (i=0; i<nChar; i++)
if (nCount < 255)
szBuf [nCount++] = cInBuf ;
cRet = cInBuf[i-1];
}

if (GetTickCount() - dwTime0 > 5000) // check if time out
{
if (bShowErrorMessage)
MessageBox (GetActiveWindow(), "Time out!", "Error", MB_OK);
return NULL;
}
}
szBuf [nCount] = 0;

return szBuf;
}


Завершается по MessageBox ?
Тогда что-то внутри функции, или неправильная настройка
Вызывается то она без параметров

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1485
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.03.10 15:18. Заголовок: Pasha пишет: Заверш..


Pasha пишет:

 цитата:
Завершается по MessageBox ?


Да.
Порт если я верно понял открывается нормально.
Но следующая за ним
? CPH_READIRCOM()
Ни чего не выдает.
Странно.....

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 22
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет