Page 2 of 2
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 3:55 pm
by karinha
Enrico, BUILDX TUTOR04: con ES0 compila con ES2 no compila. What are the correct FLAGS, this is my question.
Code: Select all | Expand
REM %hdir%\bin\harbour %1 /n /i%fwh%\include;%hdir%\include /w3 /p %2 %3 > comp.log 2> warnings.log
%hdir%\bin\harbour %1 /m /n /gc0 /w3 /es0 /i%fwh%\include;%hdir%\include /w0 -wb- /p %2 %3 > comp.log 2> warnings.log
TUTOR04.prg(13) Warning W0003 Variable: 'OWND' declared but not used in function: 'TUTOR04(11)'
TUTOR04.prg(40) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(42) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(69) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(73) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(77) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(77) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(80) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(80) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(80) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(80) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(80) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(80) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(80) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(80) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(80) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(99) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(108) Warning W0001 Ambiguous reference: 'OWND'
TUTOR04.prg(183) Warning W0003 Variable: 'N' declared but not used in function: 'BMPTILED(166)'
Tks,
Regards, saludos.
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 4:07 pm
by karinha
Enrico!! Ready!! 30 years later, I found the perfect combination. You are the man!
Enrique!! ¡¡Listo!! 30 años después, encontré la combinación perfecta. ¡Tu eres el hombre!
Code: Select all | Expand
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for xHarbour 19.05 - May. 2019 xHarbour development power ³Ü
ECHO ³ (c) FiveTech 1993-2019 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST
ECHO Compiling...
if "%FWDIR%" == "" set FWDIR=.\..\
if "%XHDIR%" == "" set XHDIR=c:\xHBBCC77
rem if "%2" == "/b" set GT=gtwin
rem if not "%2" == "/b" set GT=gtgui
set GT=gtgui
set hdir=%XHDIR%
set hdirl=%hdir%\lib
set bcdir=c:\BCC77
set fwh=%FWDIR%
REM %hdir%\bin\harbour %1 /n /i%fwh%\include;%hdir%\include /w3 /p %2 %3 > comp.log 2> warnings.log
%hdir%\bin\harbour %1 /m /n /gc3 /w3 /es0 /i%fwh%\include;%hdir%\include /w0 -wb- /p %2 %3 > comp.log 2> warnings.log
IF ERRORLEVEL 1 GOTO COMPILEERRORS
@type comp.log
@type warnings.log
echo -O2 -e%1.exe -I%hdir%\include -I%bcdir%\include %1.c > b32.bc
%bcdir%\bin\bcc32 -M -c -v @b32.bc
:ENDCOMPILE
IF EXIST %1.rc %bcdir%\bin\brc32.exe -r -I%bcdir%\include -I%bcdir%\include\windows\sdk %1
REM %bcdir%\bin\BRC32.Exe -R XPLOOK.RC
echo %bcdir%\lib\c0w32.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc
echo %fwh%\lib\Fivehx.lib %fwh%\lib\FiveHC.lib %fwh%\lib\libmysql.lib + >> b32.bc
echo %fwh%\lib\pgsql.lib %fwh%\lib\libpq.lib + >> b32.bc
echo %hdirl%\rtl.lib + >> b32.bc
echo %hdirl%\vm.lib + >> b32.bc
echo %hdirl%\%GT%.lib + >> b32.bc
echo %hdirl%\lang.lib + >> b32.bc
echo %hdirl%\macro.lib + >> b32.bc
echo %hdirl%\rdd.lib + >> b32.bc
echo %hdirl%\dbfntx.lib + >> b32.bc
echo %hdirl%\dbfcdx.lib + >> b32.bc
echo %hdirl%\dbffpt.lib + >> b32.bc
echo %hdirl%\hbsix.lib + >> b32.bc
echo %hdirl%\debug.lib + >> b32.bc
echo %hdirl%\common.lib + >> b32.bc
echo %hdirl%\codepage.lib + >> b32.bc
echo %hdirl%\pp.lib + >> b32.bc
echo %hdirl%\pcrepos.lib + >> b32.bc
echo %hdirl%\ct.lib + >> b32.bc
REM echo %hdirl%\DrXlsx32x_bcc.lib + >> b32.bc
echo %hdirl%\zlib.lib + >> b32.bc
echo %hdirl%\hbzip.lib + >> b32.bc
REM echo %hdirl%\libmisc.lib + >> b32.bc
echo %hdirl%\png.lib + >> b32.bc
rem para que TIPSSL.LIB funcione, por a TIP.LIB depois.
REM echo %hdirl%\tipssl.lib + >> b32.bc
REM echo %hdirl%\libssl.lib + >> b32.bc
REM echo %hdirl%\libcrypto.lib + >> b32.bc
echo %hdirl%\tip.lib + >> b32.bc
rem Uncomment these two lines to use Advantage RDD
rem echo %hdir%\lib\rddads.lib + >> b32.bc
rem echo %hdir%\lib\Ace32.lib + >> b32.bc
echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\import32.lib + >> b32.bc
echo %bcdir%\lib\uuid.lib + >> b32.bc
echo %bcdir%\lib\ws2_32.lib + >> b32.bc
echo %bcdir%\lib\wininet.lib + >> b32.bc
echo %bcdir%\lib\psdk\odbc32.lib + >> b32.bc
echo %bcdir%\lib\psdk\rasapi32.lib + >> b32.bc
echo %bcdir%\lib\psdk\nddeapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\msimg32.lib + >> b32.bc
echo %bcdir%\lib\psdk\psapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\gdiplus.lib + >> b32.bc
echo %bcdir%\lib\psdk\iphlpapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\urlmon.lib + >> b32.bc
echo %bcdir%\lib\psdk\shell32.lib, >> b32.bc
IF EXIST %1.res echo %1.res >> b32.bc
rem uncomment this line to use the debugger and comment the following one
if %GT% == gtwin %bcdir%\bin\ilink32 -Gn -Tpe -s -v @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
if %GT% == gtgui %bcdir%\bin\ilink32 -Gn -aa -Tpe -s -v @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
%1
GOTO EXIT
ECHO
rem delete temporary files
@del %1.c
:COMPILEERRORS
@type comp.log
ECHO * Compile errors *
GOTO EXIT
:LINKERROR
ECHO * Linking errors *
GOTO EXIT
:SINTAX
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi¢n PRG
ECHO {-- Don't specify .PRG extension
GOTO EXIT
:NOEXIST
ECHO The specified PRG %1 does not exist
:EXIT
Super Many Thanks, Enrico.
Regards, saludos.
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 4:26 pm
by Enrico Maria Giordano
This is what I get:
Code: Select all | Expand
tutor04.prg(139) Warning W0003 Variable: 'N' declared but not used in function: 'BMPTILED(122)'
tutor04.prg(139) Warning W0032 Variable 'NCOL' is assigned but not used in function 'BMPTILED(122)'
The sample should be corrected.
Replace this:
with:
And you shold not have any warnings. Fixing the warnings is very important as they can hide serious problem in the code, so I don't recommend to silence them.
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 4:29 pm
by Enrico Maria Giordano
karinha wrote:Enrico!! Ready!! 30 years later, I found the perfect combination. You are the man!
Code: Select all | Expand
%hdir%\bin\harbour %1 /m /n /gc3 /w3 /es0 /i%fwh%\include;%hdir%\include /w0 -wb- /p %2 %3 > comp.log 2> warnings.log
This is far from perfect. The recommended switch is /es2, as if it will force you to fix the warnings. /es0 can be a workaround with legacy code, but you should use /es2 with new code.
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 4:51 pm
by karinha
Enrico, it works too. But you have to change the way you DECLARE the VARIABLES. For example, it does not accept PUBLIC.
Enrico, también funciona. Pero hay que cambiar la forma de DECLARAR las VARIABLES. Por ejemplo, no acepta PUBLIC.
Code: Select all | Expand
%hdir%\bin\harbour %1 /m /n /gc3 /w3 /es2 /i%fwh%\include;%hdir%\include /w0 -wb- /p %2 %3 > comp.log 2> warnings.log
Regards, saludos.
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 5:24 pm
by Enrico Maria Giordano
No, you are simply forgot /a, that's all.
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 5:35 pm
by karinha
Perfect Enrico. Perfecto Enrico. Funciono de 1000. Gracias.
// BUILDX.BAT modificado:
Code: Select all | Expand
%hdir%\bin\harbour %1 /a /m /n /gc3 /w3 /es2 /i%fwh%\include;%hdir%\include /w0 -wb- /p %2 %3 > comp.log 2> warnings.log
Code: Select all | Expand
// C:\FWH..\SAMPLES\TUTOR04.PRG Modificado por Joao Santos/Sao Paulo/Brasil.
// Para David Barrio de Argentina. 16/11/2022
// We are going to build a PullDown menu and we are going to assign it
// to our main Window
// This example is the typical way of start building a FiveWin program
#include "FiveWin.ch"
STATIC oWnd
// MEMVAR ERONI // ASIM FUNCIONA ERONI - FiveWin Brasil.
FUNCTION Main()
LOCAL oIco, oBar, oBmp
// PRIVATE ERONI // ASSIM FUNCIONA ERONI
PUBLIC ERONI // ASSIM NAO FUNCIONA ERONI, USANDO /ES2 Entende?
hb_gcAll( .F. )
ERONI := [ENRICO ES EL MAXIMO] // Space( 30 )
// TUTOR04.prg( 25 ) Warning W0001 Ambiguous reference: 'ERONI'
? ERONI
// No cargar la aplicacion dos veces.
IF ISEXERUNNING( CFILENAME( hb_argv( 0 ) ) )
MsgInfo( "Tutor04.exe Já Está Rodando Nesta Máquina", "Tutor04.exe" )
SHOWWINDOW( FINDWINDOW( 0, "TUTOR04" ), 9 ) // Nombre tu .EXE
SETFOREGROUNDWINDOW( FINDWINDOW( 0, "TUTOR04" ) )
LIBERA_TUDO()
RETURN NIL
ENDIF
DEFINE ICON oIco FILE "..\icons\fax.ico"
DEFINE WINDOW oWnd FROM 1, 1 TO 22, 75 ;
TITLE "FiveWin sample" ;
MENU BuildMenu() ;
COLOR "B/W" ;
ICON oIco
DEFINE BUTTONBAR oBar _3D SIZE 26, 27 OF oWnd
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\new.bmp" FLAT ;
ACTION MsgInfo( "New" ) ;
TOOLTIP "Creates a new document"
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\open.bmp" FLAT ;
ACTION MsgInfo( cGetFile( "*.*", "Select a document to open" ) ) ;
TOOLTIP "Opens a document" WHEN .F.
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\floppy.bmp" FLAT ;
ACTION MsgInfo( Time() ) TOOLTIP "Saves this document"
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\printer.bmp" FLAT ;
ACTION MsgInfo( "Prints this document" ) TOOLTIP "Print this document" GROUP
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\prop.bmp" FLAT ;
ACTION PrinterSetup() TOOLTIP "Setup the printer"
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\HelpInd.bmp" FLAT ;
ACTION MsgInfo( Version() ) TOOLTIP "A multiple lines" + ;
Chr( 13 ) + Chr( 10 ) + "tooltip!" GROUP
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Help.bmp" FLAT ;
ACTION MsgInfo( "fivewin power!" ) TOOLTIP "fivewin power!"
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Exit.bmp" FLAT ;
ACTION( oWnd:End(), LIBERA_TUDO() ) TOOLTIP "Exit this app" GROUP
DEFINE MESSAGE OF oWnd ;
PROMPT FWVERSION + " " + FWCOPYRIGHT ;
NOINSET CENTERED KEYBOARD DATE CLOCK
DEFINE BITMAP oBmp FILENAME "..\bitmaps\visual.bmp"
oWnd:bPainted = {| hDC | BmpTiled( hDC, oWnd, oBmp ) }
ACTIVATE WINDOW oWnd /* ;
VALID MsgYesNo( "Do you want to quit ?" ) */
RETURN NIL
FUNCTION BuildMenu()
LOCAL oMenu
MENU oMenu
MENUITEM "Information"
MENU
MENUITEM "&About..." ;
ACTION MsgInfo( FWDESCRIPTION ) ;
FILENAME "..\bitmaps\16x16\info.bmp"
SEPARATOR
MENUITEM "&End..." ;
ACTION( oWnd:End(), LIBERA_TUDO() ) ;
FILENAME "..\bitmaps\16x16\exit.bmp"
ENDMENU
MENUITEM "&Clients"
MENU
MENUITEM "&New..." ;
ACTION ( MsgStop( "New Clients" ), ;
oWnd:Say( 5, 5, "New Clients...", "GR+/G" ) ) ;
FILENAME "..\bitmaps\16x16\faces.bmp"
MENUITEM "&Modify..." ACTION MsgInfo( "Modif. Clients" ) ;
FILENAME "..\bitmaps\edit.bmp"
MENUITEM "&Delete..." ACTION MsgAlert( "Del Clients" ) ;
FILENAME "..\bitmaps\16x16\delete.bmp"
SEPARATOR
MENUITEM "&Browse..." ACTION MsgInfo( "Browse Clients" ) ;
FILENAME "..\bitmaps\16x16\browse.bmp"
ENDMENU
MENUITEM "&Utilities"
MENU
MENUITEM "&Calculator..." ACTION WinExec( "Calc" ) ;
FILENAME "..\bitmaps\16x16\calc.bmp"
MENUITEM "&Internet..." ;
ACTION WinExec( "start iexplore http://www.fivetech.com", 0 ) ;
FILENAME "..\bitmaps\16x16\explorer.bmp"
ENDMENU
ENDMENU
RETURN oMenu
// --Fecha o Programa Definitivamente e Libera a Memoria RAM.
FUNCTION LIBERA_TUDO()
IF File( "TUTOR04.LOG" )
DELETEFILE( "TUTOR04.LOG" )
ENDIF
dbCommitAll()
dbUnlockAll()
dbCloseAll()
FreeResources()
RELEASE ALL
SysRefresh()
hb_gcAll( .T. )
CLEAR MEMORY
PostQuitMessage( 0 )
QUIT
RETURN NIL
STATIC FUNCTION BmpTiled( hDC, oWnd, oBmp )
LOCAL nWidth := oWnd:nWidth(), nHeight := oWnd:nHeight()
LOCAL nRow := 0, nCol := 0 // , n
LOCAL nBmpWidth := oBmp:nWidth(), nBmpHeight := oBmp:nHeight()
IF oBmp:hBitmap == 0
RETURN NIL
ENDIF
WHILE nRow < nHeight
nCol = 0
WHILE nCol < nWidth
PalBmpDraw( hDC, nRow, nCol, oBmp:hBitmap )
nCol += nBmpWidth
END
nRow += nBmpHeight
END
RETURN NIL
// FIN / END
Super Many thanks Enrico!
Regards, saludos.
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 5:37 pm
by Enrico Maria Giordano
Great!
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 6:38 pm
by karinha
Using these FLAGS, the compiler does not miss any error COMMAS, if you declare a variable and do not use it, the compilation will not pass. Incredible. It's a lot of work, but it's worth it, as your code is super clean of errors.
Usando estas BANDERAS el compilador no pierde ningún error COMAS, si declaras una variable y no la usas la compilación no pasará. Increíble. Es mucho trabajo, pero vale la pena, ya que tu código está súper limpio de errores.
Usando estes FLAGS, o compilador não deixa passar nenhuma VIRGULA de erro, se você declarar um variável e não usar, a compilação não passará. Incrível. Dá uma trabalho imenso, más vale a pena, já que seu código fica super limpo de erros.
Tks.
Regards, saludos.
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 6:39 pm
by Silvio.Falconi
karinha wrote:
Using these FLAGS, the compiler does not miss any error COMMAS, if you declare a variable and do not use it, the compilation will not pass. Incredible. It's a lot of work, but it's worth it, as your code is super clean of errors.
Usando estas BANDERAS el compilador no pierde ningún error COMAS, si declaras una variable y no la usas la compilación no pasará. Increíble. Es mucho trabajo, pero vale la pena, ya que tu código está súper limpio de errores.
Usando estes FLAGS, o compilador não deixa passar nenhuma VIRGULA de erro, se você declarar um variável e não usar, a compilação não passará. Incrível. Dá uma trabalho imenso, más vale a pena, já que seu código fica super limpo de erros.
Tks.
Regards, saludos.
it's not as easy as it seems sometimes there are codeblocks that you don't make but for example the classes themselves and you won't be able to compile with w3 I've been using xmate for twenty years and I know it very well
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 6:43 pm
by karinha
Hi Silvio, I use a CX.BAT and a CX.LNK, it's taking a lot of work to CLEAN up the code. I'm enjoying using these FLAGS. I don't use XMATE, I can't give my opinion.
Hola Silvio, uso un CX.BAT y un CX.LNK, me está costando mucho trabajo LIMPIAR el código. Estoy disfrutando usando estas BANDERAS. No uso XMATE, no puedo dar mi opinión.
Tks.
Regards, saludos.
Re: Silvo .. changes to your xMate environment
Posted: Tue Apr 30, 2024 6:46 pm
by Silvio.Falconi
Rick Lipkin wrote:Silvo
Found the error ( for me ) in your xMate environment ... made this change for me ... you may need this ??.. I did not /j%HOME%\I18n\Main.hil
Change this line
Code: Select all | Expand
HB_COMMAND=%HB_BIN_INSTALL%\Harbour.Exe %PRG% /m /n /gc0 /w0 /es2 /a /i%HB_INC_INSTALL% /i%HB_INC_INSTALL% /j%HOME%\I18n\Main.hil /iinclude;c:\fwh2404\include;%HB_INSTALL%\include
Here is the corrected line
Code: Select all | Expand
HB_COMMAND=%HB_BIN_INSTALL%\Harbour.Exe %PRG% /m /n /gc0 /w0 /es2 /a /i%HB_INC_INSTALL%
Thanks
Rick Lipkin
main.hil is not an error, it does not create errors with the compilation of xmate, I used it for the translation of words because not everyone knows that in harbor there is the I18n function that translates automatically. the .hil file is handled by a program like POEDIT for those who know the web (I had made a version of it) but then Antonio Linares invented his own fwxxxx function and the large file with all the words in the program, the problem is that it you always have to update and adjust while with i18n the end user can do it if they want.