Migranting xHarbour for Harbour

Migranting xHarbour for Harbour

Postby Ari » Thu Aug 25, 2022 11:52 am

Olá,

How to solve this ?

i'm compiling with harbour 3.2.0, before i used xharbour 1.2.3


Lines 7320, Functions/Procedures 18
Generating C source output to '\tmp\obj901\GER.c'... Done.
bcc32 -M -c -I\harbour\INCLUDE;\BCC74\INCLUDE -tW -o\tmp\obj901\GER.obj \tmp\obj901\GER.c
Embarcadero C++ 7.40 for Win32 Copyright (c) 1993-2018 Embarcadero Technologies, Inc.
\tmp\obj901\GER.c:

Warning W8065 \\SIS\\FSQL901\\LIB\\GER.PRG 831: Call to function 'ISNIL' with no prototype in function HB_FUN_BOM
Warning W8065 \\SIS\\FSQL901\\LIB\\GER.PRG 858: Call to function 'ISNIL' with no prototype in function HB_FUN_EOM
Warning W8065 \\SIS\\FSQL901\\LIB\\GER.PRG 890: Call to function 'ISNIL' with no prototype in function HB_FUN_BOQ
Warning W8065 \\SIS\\FSQL901\\LIB\\GER.PRG 918: Call to function 'ISNIL' with no prototype in function HB_FUN_EOQ
Warning W8065 \\SIS\\FSQL901\\LIB\\GER.PRG 951: Call to function 'ISNIL' with no prototype in function HB_FUN_BOY
Warning W8065 \\SIS\\FSQL901\\LIB\\GER.PRG 977: Call to function 'ISNIL' with no prototype in function HB_FUN_EOY
Warning W8065 \\SIS\\FSQL901\\LIB\\GER.PRG 1017: Call to function 'ISNIL' with no prototype in function HB_FUN_WOM

Turbo Incremental Link 6.90 Copyright (c) 1997-2017 Embarcadero Technologies, Inc.

Error: Unresolved external '_ISNIL' referenced from C:\TMP\OBJ901\GER.OBJ

Error: Unresolved external '__hInstance' referenced from C:\BCC74\LIB\WIN32\CW32.LIB|exit
Error: Unresolved external '___CPPdebugHook' referenced from C:\BCC74\LIB\WIN32\CW32.LIB|xx
Error: Unresolved external '___System__GetTls' referenced from C:\BCC74\LIB\WIN32\CW32.LIB|xxv


Error: Unresolved external '_hb_retcAdopt' referenced from C:\SIS\FSQL901\LIB\SISREV.LIB|base64
Error: Unresolved external '_hb_retclenAdopt' referenced from C:\SIS\FSQL901\LIB\SISREV.LIB|base64



Tanks
Ari
Code: Select all  Expand view

\sis\fsql901\lib\libmysql.lib     +
\sis\fsql901\lib\mysqlclient.lib  +
\sis\fsql901\lib\sisrev.lib,      +  
sisrev.exe,                       +
sisrev.map,                       +
\fwh2206\lib\FiveH.lib            +
\fwh2206\lib\FiveHC.lib           +
\harbour\lib\hbhpdf.lib    +
\harbour\lib\libhpdf.lib   +
\harbour\lib\png.lib       +
\harbour\lib\hbwin.lib  +
\harbour\lib\gtgui.lib  +
\harbour\lib\hbrtl.lib  +
\harbour\lib\hbvm.lib   +
\harbour\lib\hblang.lib +
\harbour\lib\hbmacro.lib +
\harbour\lib\hbrdd.lib  +
\harbour\lib\rddntx.lib +
\harbour\lib\rddcdx.lib +
\harbour\lib\rddfpt.lib +
\harbour\lib\hbsix.lib +
\harbour\lib\hbdebug.lib +
\harbour\lib\hbcommon.lib +
\harbour\lib\hbpp.lib +
\harbour\lib\hbcpage.lib +
\harbour\lib\hbcplr.lib +
\harbour\lib\hbct.lib +
\harbour\lib\hbpcre.lib +
\harbour\lib\xhb.lib +
\harbour\lib\hbziparc.lib +
\harbour\lib\hbmzip.lib +
\harbour\lib\hbzlib.lib +
\harbour\lib\minizip.lib +
\harbour\lib\hbusrrdd.lib +
\harbour\lib\hbtip.lib +
\harbour\lib\hbzebra.lib +
\harbour\lib\hbcurl.lib +
\harbour\lib\libcurl.lib +
\bcc74\lib\win32\cw32.lib +
\bcc74\lib\win32\import32.lib +
\bcc74\lib\win32\psdk\uuid.lib +
\bcc74\lib\win32\psdk\ws2_32.lib +
\bcc74\lib\win32\psdk\odbc32.lib +
\bcc74\lib\win32\psdk\nddeapi.lib +
\bcc74\lib\win32\psdk\iphlpapi.lib +
\bcc74\lib\win32\psdk\msimg32.lib +
\bcc74\lib\win32\psdk\psapi.lib +
\bcc74\lib\win32\psdk\rasapi32.lib +
\bcc74\lib\win32\psdk\gdiplus.lib +
\bcc74\lib\win32\psdk\shell32.lib,

 


Code: Select all  Expand view
                           
#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>

#include "hbapi.h"
#include "hbapiitm.h"
#include "hbdate.h"


HB_FUNC( BOM )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
     hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
     hb_retd( iYear, iMonth, 1);
   }
   else
   {
      hb_retdl( 0 );
   }

}

HB_FUNC( EOM )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
     hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
     iMonth ++;
     if( iMonth > 12)
     {
       iMonth = 1;
       iYear ++;
     }
     hb_retdl( hb_dateEncode( iYear, iMonth, 1 ) - 1);
   }
   else
   {
      hb_retdl( 0 );
   }
}

HB_FUNC( BOQ )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
      hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
      iMonth -= ( iMonth - 1 ) % 3;

      hb_retd( iYear, iMonth, 1 );
   }
   else
   {
      hb_retdl( 0 );
   }
}

HB_FUNC( EOQ )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {

      hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
      iMonth += 3 - ( ( iMonth - 1 ) % 3 );
      if( iMonth > 12 )
      {
         iMonth = 1;
         iYear ++;
      }
      hb_retdl( hb_dateEncode( iYear, iMonth, 1 ) - 1 );
   }
   else
   {
      hb_retdl( 0 );
   }
}

HB_FUNC( BOY )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
      hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
      hb_retd( iYear, 1, 1 );
   }
   else
   {
      hb_retdl( 0 );
   }
}

HB_FUNC( EOY )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
      hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
      hb_retdl( hb_dateEncode( iYear + 1, 1, 1 ) - 1 );
   }
   else
   {
      hb_retdl( 0 );
   }
}


static int hb_wom( int iYear, int iMonth, int iDay )
{
   int iWom;

   HB_TRACE(HB_TR_DEBUG, ("hb_wom(%d, %d, %d)", iYear, iMonth, iDay));

   iWom = iDay + hb_dateDOW( iYear, iMonth, 1 ) - 1;
   if( iWom > 0 )
      return ( iWom - hb_dateDOW( iYear, iMonth, iDay ) ) / 7 + 1;
   else
      return 0;
}

HB_FUNC( WOM )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
      hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
      hb_retni( hb_wom( iYear, iMonth, iDay ) );
   }
   else
   {
      hb_retni( 0 );
   }
}

#pragma ENDDUMP

 
Thanks,
Ari

FWH 2212 - Harbour 3.2.0 - Embarcadero 7.43 - MySQL
São Paulo - SP - Brasil
www.sisrev.com.br
User avatar
Ari
 
Posts: 234
Joined: Fri Feb 03, 2006 4:21 pm
Location: São Paulo, SP - Brazil

Re: Migranting xHarbour for Harbour

Postby karinha » Thu Aug 25, 2022 2:14 pm

Simples,

https://github.com/harbour/core/blob/master/contrib/gtwvg/crt.prg

https://vivaclipper.wordpress.com/2014/02/12/harbour-check-functions/

Code: Select all  Expand view

//----------------------------------------------------------------------------//

#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>

#include "hbapi.h"
#include "hbapiitm.h"
#include "hbdate.h"


HB_FUNC( BOM )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( HB_ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
     hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
     hb_retd( iYear, iMonth, 1);
   }
   else
   {
      hb_retdl( 0 );
   }

}

HB_FUNC( EOM )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( HB_ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
     hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
     iMonth ++;
     if( iMonth > 12)
     {
       iMonth = 1;
       iYear ++;
     }
     hb_retdl( hb_dateEncode( iYear, iMonth, 1 ) - 1);
   }
   else
   {
      hb_retdl( 0 );
   }
}

HB_FUNC( BOQ )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( HB_ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
      hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
      iMonth -= ( iMonth - 1 ) % 3;

      hb_retd( iYear, iMonth, 1 );
   }
   else
   {
      hb_retdl( 0 );
   }
}

HB_FUNC( EOQ )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( HB_ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {

      hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
      iMonth += 3 - ( ( iMonth - 1 ) % 3 );
      if( iMonth > 12 )
      {
         iMonth = 1;
         iYear ++;
      }
      hb_retdl( hb_dateEncode( iYear, iMonth, 1 ) - 1 );
   }
   else
   {
      hb_retdl( 0 );
   }
}

HB_FUNC( BOY )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( HB_ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
      hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
      hb_retd( iYear, 1, 1 );
   }
   else
   {
      hb_retdl( 0 );
   }
}

HB_FUNC( EOY )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( HB_ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
      hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
      hb_retdl( hb_dateEncode( iYear + 1, 1, 1 ) - 1 );
   }
   else
   {
      hb_retdl( 0 );
   }
}


static int hb_wom( int iYear, int iMonth, int iDay )
{
   int iWom;

   HB_TRACE(HB_TR_DEBUG, ("hb_wom(%d, %d, %d)", iYear, iMonth, iDay));

   iWom = iDay + hb_dateDOW( iYear, iMonth, 1 ) - 1;
   if( iWom > 0 )
      return ( iWom - hb_dateDOW( iYear, iMonth, iDay ) ) / 7 + 1;
   else
      return 0;
}

HB_FUNC( WOM )
{
   LONG lDate;
   int iYear, iMonth, iDay;

   if( HB_ISNIL(1) )
   {
      hb_dateToday( &iYear, &iMonth, &iDay );
      lDate = hb_dateEncode(iYear, iMonth, iDay);
   }
   else
   {
      lDate = hb_pardl( 1 );
   }

   if( lDate != 0 )
   {
      hb_dateDecode( lDate, &iYear, &iMonth, &iDay );
      hb_retni( hb_wom( iYear, iMonth, iDay ) );
   }
   else
   {
      hb_retni( 0 );
   }
}

#pragma ENDDUMP
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Migranting xHarbour for Harbour

Postby Antonio Linares » Thu Aug 25, 2022 2:18 pm

Dear Ari,

Please let us know if you need any further help on your migration

We are here to help you
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Migranting xHarbour for Harbour

Postby Ari » Thu Aug 25, 2022 2:40 pm

Tanks ! Karinha

Tanks Antonio !

I have another modification in more than 500 lines to modify from:

Super: New()

for:

::Super:New()

What's the best way?

Ari
Thanks,
Ari

FWH 2212 - Harbour 3.2.0 - Embarcadero 7.43 - MySQL
São Paulo - SP - Brasil
www.sisrev.com.br
User avatar
Ari
 
Posts: 234
Joined: Fri Feb 03, 2006 4:21 pm
Location: São Paulo, SP - Brazil

Re: Migranting xHarbour for Harbour

Postby Ari » Thu Aug 25, 2022 4:34 pm

Resolved I used NotePad ++

Ari :D
Thanks,
Ari

FWH 2212 - Harbour 3.2.0 - Embarcadero 7.43 - MySQL
São Paulo - SP - Brasil
www.sisrev.com.br
User avatar
Ari
 
Posts: 234
Joined: Fri Feb 03, 2006 4:21 pm
Location: São Paulo, SP - Brazil

Re: Migranting xHarbour for Harbour

Postby Ari » Thu Aug 25, 2022 6:02 pm

Hello

Now I need the TTaskPanel classes for Harbour 3.2.0

Do you know where I can find it?

Tanks
Ari
Thanks,
Ari

FWH 2212 - Harbour 3.2.0 - Embarcadero 7.43 - MySQL
São Paulo - SP - Brasil
www.sisrev.com.br
User avatar
Ari
 
Posts: 234
Joined: Fri Feb 03, 2006 4:21 pm
Location: São Paulo, SP - Brazil

Re: Migranting xHarbour for Harbour

Postby Antonio Linares » Thu Aug 25, 2022 6:32 pm

Dear Ari,

FWH provides Class TExplorerBar, do you mean this control ?

This is a TExplorerBar built in FWH
Image
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Migranting xHarbour for Harbour

Postby Ari » Thu Aug 25, 2022 6:47 pm

Yes

It is this control, but use in many places as follows:

and to rewrite is a lot of work.

/**************************************************************************************************
* Project : TTaskpanel
* File : TaskPanel.prg
*
* Copyright 2010 Andres Reyes Hernandez - <andresreyes_mzt/at/yahoo.com.mx>
* http://codigo-base.blogspot.com




Code: Select all  Expand view

 TASKGROUP oGrp[5] PROMPT "Legenda dos LEDs" COLLAPSABLE WATERMARK MARCA_DAGUA COLLAPSED BITMAP "info"
    TASKITEM "<b>Legenda Configurações Internas(1)</b>"                       INFO
    TASKITEM ""
    TASKITEM "<b>Coluna [H] Help</b>: clique nesta coluna p/busca de mais explicações da config." BITMAP "INFO" INFO
    TASKITEM ""
    TASKITEM "<b>Coluna [N] Nível:</b>"                                       INFO
    TASKITEM "Azul: configuração travada"                    BITMAP "LEVEL9"  INFO
    TASKITEM "Marrom: dependente de outras"                  BITMAP "LEVEL6"  INFO
    TASKITEM "Amarelo: tem avisos (requer atenção)"          BITMAP "LEVEL2"  INFO
    TASKITEM "Violeta: livre"                                BITMAP "LEVEL4"  INFO
    TASKITEM "Branco: customizada"                           BITMAP "LEVEL7"  INFO
    TASKITEM ""
    TASKITEM "<b>Coluna [P] padrão:</b> como a config é na origem"            INFO
    TASKITEM "Verde: padrão ligada quando instala o sistema" BITMAP "LEVEL3"  INFO
    TASKITEM "Vermelho: padrão desligada."                   BITMAP "LEVEL1"  INFO
    TASKITEM ""
    TASKITEM "<b>Coluna [L] Ligada/Desligada:</b>"                            INFO
    TASKITEM "Verde: ligada"                                 BITMAP "LEVEL3" INFO
    TASKITEM "Vermelha: desligada"                           BITMAP "LEVEL1" INFO
    TASKITEM ""
    TASKITEM "<b>Coluna [F] Fixa:</b> configuração fixa na listagem do programa, só pode ser modificada pelo programador" INFO
    TASKITEM "Azul: fixa"                                    BITMAP "LEVEL5" INFO
    TASKITEM "Sem LED: não é fixa"                           BITMAP "LEVEL8" INFO
    TASKITEM ""
    TASKITEM "<b>Obs:</b> o acesso a essa janela é controlado pelo direito de usuário: <b>d0026</b>" INFO
  ENDTASKGROUP
 
 


Now I can enter the system and the windows that has the Task, gives internal error in LIB, where I do not have the sources:

Ari
Thanks,
Ari

FWH 2212 - Harbour 3.2.0 - Embarcadero 7.43 - MySQL
São Paulo - SP - Brasil
www.sisrev.com.br
User avatar
Ari
 
Posts: 234
Joined: Fri Feb 03, 2006 4:21 pm
Location: São Paulo, SP - Brazil

Re: Migranting xHarbour for Harbour

Postby Antonio Linares » Thu Aug 25, 2022 7:05 pm

Dear Ari,

I just sent a message to Andres Reyes on facebook asking him for his help on this issue

Lets wait for his answer
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Migranting xHarbour for Harbour (Solved)

Postby Ari » Thu Aug 25, 2022 7:07 pm

:D

looking here I found the lib compatible with harbour 3.2.0

tanks for all the attention

Ari
Thanks,
Ari

FWH 2212 - Harbour 3.2.0 - Embarcadero 7.43 - MySQL
São Paulo - SP - Brasil
www.sisrev.com.br
User avatar
Ari
 
Posts: 234
Joined: Fri Feb 03, 2006 4:21 pm
Location: São Paulo, SP - Brazil

Re: Migranting xHarbour for Harbour

Postby Ari » Thu Aug 25, 2022 7:11 pm

I would like to send an image, where do I put the image ?

Ari
Thanks,
Ari

FWH 2212 - Harbour 3.2.0 - Embarcadero 7.43 - MySQL
São Paulo - SP - Brasil
www.sisrev.com.br
User avatar
Ari
 
Posts: 234
Joined: Fri Feb 03, 2006 4:21 pm
Location: São Paulo, SP - Brazil

Re: Migranting xHarbour for Harbour

Postby Antonio Linares » Thu Aug 25, 2022 9:22 pm

Ari,

You can create a repository for free on GitHub and there save your images, and here you use the URL address of them
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Migranting xHarbour for Harbour

Postby Antonio Linares » Thu Aug 25, 2022 9:26 pm

I just sent an email to Andrés Reyes to andresreyes_mzt@yahoo.com.mx
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Migranting xHarbour for Harbour

Postby Ari » Fri Aug 26, 2022 11:32 am

Thanks,
Ari

FWH 2212 - Harbour 3.2.0 - Embarcadero 7.43 - MySQL
São Paulo - SP - Brasil
www.sisrev.com.br
User avatar
Ari
 
Posts: 234
Joined: Fri Feb 03, 2006 4:21 pm
Location: São Paulo, SP - Brazil

Re: Migranting xHarbour for Harbour

Postby Antonio Linares » Sat Aug 27, 2022 10:30 am

Ari,

Las imágenes se ven muy bien

Que problema hay con ellas ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Next

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 67 guests