O outro .CFG esta assim : -LC:\BCC55\LIB;C:\xHARBOUR\LIB;C:\hwgui\LIB
E o códdigo que estou tentando compilar :
Código: Selecionar todos
#define _CLIPDEFS_H
#define HB_OS_WIN_USED
#include "hbapi.h"
#include "hbapiitm.h"
#include "hbapifs.h"
#include <stdio.h>
HB_FUNC( P_INITPORTSPEED )
{
DCB dcb;
char values[ 20 ];
LPTSTR lpValues;
FillMemory( &dcb, sizeof( dcb ), 0 );
dcb.DCBlength = sizeof( dcb );
hb_snprintf( values, sizeof( values ), "%lu,%1s,%1lu,%1lu", hb_parnl( 2 ), hb_parcx( 4 ), hb_parnl( 3 ), hb_parnl( 5 ) );
lpValues = HB_TCHAR_CONVTO( values );
if( BuildCommDCB( lpValues, &dcb ) )
{
if( SetCommState( ( HANDLE ) ( HB_PTRUINT ) hb_parnint( 1 ), &dcb ) )
{
COMMTIMEOUTS timeouts;
/* read/write operations return immediatly */
timeouts.ReadIntervalTimeout = MAXDWORD;
timeouts.ReadTotalTimeoutMultiplier = 0;
timeouts.ReadTotalTimeoutConstant = 0;
timeouts.WriteTotalTimeoutMultiplier = 0;
timeouts.WriteTotalTimeoutConstant = 0;
hb_retnl( SetCommTimeouts( ( HANDLE ) ( HB_PTRUINT ) hb_parnint( 1 ), &timeouts ) ? 0 : -1 );
}
else
hb_retnl( -1 );
}
else
hb_retnl( -1 );
HB_TCHAR_FREE( lpValues );
}
HB_FUNC( P_READPORT )
{
char buffer[ 512 ];
DWORD nRead = 0;
OVERLAPPED Overlapped;
memset( &Overlapped, 0, sizeof( OVERLAPPED ) );
if( ReadFile( ( HANDLE ) ( HB_PTRUINT ) hb_parnint( 1 ), buffer, sizeof( buffer ), &nRead, &Overlapped ) )
hb_retclen( buffer, nRead );
else
hb_retc_null();
}
HB_FUNC( P_WRITEPORT )
{
DWORD nWritten = 0;
OVERLAPPED Overlapped;
memset( &Overlapped, 0, sizeof( OVERLAPPED ) );
if( WriteFile( ( HANDLE ) ( HB_PTRUINT ) hb_parnint( 1 ), hb_parcx( 2 ), hb_parclen( 2 ), &nWritten, &Overlapped ) )
hb_retnl( ( long ) nWritten ); /* Put GetLastError() on error, or better a second byref param? */
else
hb_retnl( -1 );
}
HB_FUNC( P_INFREE )
{
HANDLE hPort = ( HANDLE ) ( HB_PTRUINT ) hb_parnint( 1 );
COMMPROP CommProp;
if( GetCommProperties( hPort, &CommProp ) )
{
COMSTAT ComStat;
if( ClearCommError( hPort, NULL, &ComStat ) && CommProp.dwCurrentRxQueue != 0 )
hb_retnl( CommProp.dwCurrentRxQueue - ComStat.cbInQue );
else
hb_retnl( -1 );
}
else
hb_retnl( -1 );
}
HB_FUNC( P_OUTFREE )
{
HANDLE hPort = ( HANDLE ) ( HB_PTRUINT ) hb_parnint( 1 );
COMMPROP CommProp;
if( GetCommProperties( hPort, &CommProp ) )
{
COMSTAT ComStat;
if( ClearCommError( hPort, NULL, &ComStat ) && CommProp.dwCurrentTxQueue != 0 )
hb_retnl( CommProp.dwCurrentTxQueue - ComStat.cbOutQue );
else
hb_retnl( -1 );
}
else
hb_retnl( -1 );
}
HB_FUNC( P_CTRLCTS )
{
hb_retni( 0 ); /* dummy */
}
HB_FUNC( P_ISDCD )
{
DWORD dwModemStat = 0;
BOOL bRet = GetCommModemStatus( ( HANDLE ) ( HB_PTRUINT ) hb_parnint( 1 ), &dwModemStat );
hb_retl( bRet ? ( dwModemStat & MS_RLSD_ON ) != 0 : FALSE ); /* The RLSD (receive-line-signal-detect) signal is on. Also is DCD. */
}
HB_FUNC( P_ISRI )
{
DWORD dwModemStat = 0;
BOOL bRet = GetCommModemStatus( ( HANDLE ) ( HB_PTRUINT ) hb_parnint( 1 ), &dwModemStat );
hb_retl( bRet ? ( dwModemStat & MS_RING_ON ) != 0 : FALSE );
}
HB_FUNC( P_ISDSR )
{
DWORD dwModemStat = 0;
BOOL bRet = GetCommModemStatus( ( HANDLE ) ( HB_PTRUINT ) hb_parnint( 1 ), &dwModemStat );
hb_retl( bRet ? ( dwModemStat & MS_DSR_ON ) != 0 : FALSE );
}
HB_FUNC( P_ISCTS )
{
DWORD dwModemStat = 0;
BOOL bRet = GetCommModemStatus( ( HANDLE ) ( HB_PTRUINT ) hb_parnint( 1 ), &dwModemStat );
hb_retl( bRet ? ( dwModemStat & MS_CTS_ON ) != 0 : FALSE );
}
Grato!