Horizon wrote:My main goal is to compile the program with Hbmk2.Why do you want to use such a bad and bugged tool instead of a simple batch? I don't understand...
Horizon wrote:My main goal is to compile the program with Hbmk2.Why do you want to use such a bad and bugged tool instead of a simple batch? I don't understand...
#pragma BEGINDUMP
#include <Windows.h>
extern "C" {
FILE * _iob[] = { stdin, stdout, stderr };
FILE * __iob_func( void )
{
return ( FILE * ) _iob;
}
}
#pragma ENDDUMPI can only say that I have no problem at all with Harbour/xHarbour and MSC32, MSC64, BCC32 and BCC64.
Dear Hakan,
If you use the files that I provided you and the Harbour build that I told you, you should not have any problems at all
Antonio Linares wrote: Use this Harbour 64: https://github.com/FiveTechSoft/harbour_and_xharbour_builds/blob/master/harbour_msvc2022_64_20240530.zipHola buenas noches, estamos intentando generar un ejecutable basico con visual studio, con las opciones que mencion贸 Antonio en el post anterior, pero al intentar generar el test.exe, salen los siguientes errores:
go64.battest64.hbp@setlocal call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 c:\harbour\bin\win\msvc64\hbmk2 test64.hbp -comp=msvc64 @endlocal test.exetest.prg-gui -Ic:\fwh64\include test.prg -Lc:\fwh64\lib -lFiveH64 -lFiveHC64 -lgdiplus -lole32 -lOleDlg -lversion -lucrt -luxtheme -ldflag=/NODEFAULTLIB:libucrt -ldflag=/NODEFAULTLIB:msvcrt xhb.hbc hbct.hbc hbwin.hbc hbmzip.hbc hbziparc.hbc hbfoxpro.hbc -ldflag=/NODEFAULTLIB:msvcrt test.rctest.rc#include "FiveWin.ch" function Main() 聽 聽local oBmpTiled, oWnd, oMsgBar 聽 聽DEFINE BITMAP oBmpTiled RESOURCE "background" 聽 聽DEFINE WINDOW oWnd MENU BuildMenu() TITLE "My app" 聽 聽BuildBar( oWnd ) 聽 聽DEFINE MSGBAR oMsgBar OF oWnd PROMPT "My app" NOINSET 聽 聽ACTIVATE WINDOW oWnd MAXIMIZED ; 聽 聽 聽 ON PAINT DrawTiled( hDC, oWnd, oBmpTiled ) 聽 聽oBmpTiled:End() return nil function BuildMenu() 聽 聽local oMenu 聽 聽MENU oMenu 聽 聽 聽 MENUITEM "&Files" 聽 聽ENDMENU return oMenu 聽 function BuildBar( oWnd ) 聽 聽local oBar 聽 聽DEFINE BUTTONBAR oBar OF oWnd 3D SIZE 70, 70 return nilbackground BITMAP c:\fwh64\bitmaps\backgrnd\iosbg.bmp
C:\cmplar_mv_64>go64
C:\cmplar_mv_64>call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.11.3
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
Harbour 3.2.0dev (r2407221137)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling '.\PRG\test.prg'...
Lines 5054, Functions/Procedures 3
Generating C source output to 'C:\Users\leandro\AppData\Local\Temp\65\hbmk_8ukx4k.dir\test.c'... Done.
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation. All rights reserved.
test.c
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(57): error C2061: error de sintaxis: identificador '__attribute__'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(57): error C2059: error de sintaxis: ';'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(57): error C2143: error de sintaxis: falta ')' delante de 'constante'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(57): error C2059: error de sintaxis: ')'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(57): error C2059: error de sintaxis: ')'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(57): error C2059: error de sintaxis: ')'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(59): error C2143: error de sintaxis: falta ')' delante de 'constante'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(59): error C2059: error de sintaxis: ')'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(59): error C2059: error de sintaxis: ')'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(59): error C2059: error de sintaxis: ')'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(84): warning C4431: falta el especificador de tipo - se presupone int. Nota: C no admite default-int
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(84): warning C4218: se ha utilizado una extensi贸n no est谩ndar: se debe especificar al menos una clase de almacenamiento o un tipo
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(87): error C2146: error de sintaxis: falta ')' delante del identificador '__jmpb'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(87): error C2061: error de sintaxis: identificador '__jmpb'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(87): error C2059: error de sintaxis: ';'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(87): error C2059: error de sintaxis: ','
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(87): error C2059: error de sintaxis: ')'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(88): error C2146: error de sintaxis: falta ')' delante del identificador '__jmpb'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(88): error C2061: error de sintaxis: identificador '__jmpb'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(88): error C2059: error de sintaxis: ';'
c:\bcc770_64\INCLUDE\windows\crtl\setjmp.h(88): error C2059: error de sintaxis: ')'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(64): warning C4431: falta el especificador de tipo - se presupone int. Nota: C no admite default-int
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(64): error C2054: se esperaba '(' a continuaci贸n de '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(65): error C2057: se esperaba una expresi贸n constante
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(65): error C2466: no se puede asignar una matriz de tama帽o constante 0
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(65): error C2082: nueva definici贸n del par谩metro formal '__cpuid'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(66): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(67): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(67): error C2057: se esperaba una expresi贸n constante
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(67): error C2466: no se puede asignar una matriz de tama帽o constante 0
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(67): error C2082: nueva definici贸n del par谩metro formal '__cpuidex'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(69): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(71): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(71): error C2082: nueva definici贸n del par谩metro formal '__emul'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(73): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(75): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(75): error C2082: nueva definici贸n del par谩metro formal '__emulu'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(76): error C2082: nueva definici贸n del par谩metro formal '__getcallerseflags'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(77): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(78): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(78): error C2082: nueva definici贸n del par谩metro formal '__halt'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(79): error C2082: nueva definici贸n del par谩metro formal '__inbyte'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(80): error C2082: nueva definici贸n del par谩metro formal '__inbytestring'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(81): error C2085: '__incfsbyte': no est谩 en la lista de par谩metros formales
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(82): error C2085: '__incfsdword': no est谩 en la lista de par谩metros formales
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(83): error C2085: '__incfsword': no est谩 en la lista de par谩metros formales
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(84): error C2082: nueva definici贸n del par谩metro formal '__indword'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(85): error C2082: nueva definici贸n del par谩metro formal '__indwordstring'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(86): error C2082: nueva definici贸n del par谩metro formal '__invlpg'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(87): error C2082: nueva definici贸n del par谩metro formal '__inword'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(88): error C2082: nueva definici贸n del par谩metro formal '__inwordstring'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(89): error C2082: nueva definici贸n del par谩metro formal '__lidt'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(90): error C2082: nueva definici贸n del par谩metro formal '__ll_lshift'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(91): error C2082: nueva definici贸n del par谩metro formal '__ll_rshift'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(92): error C2082: nueva definici贸n del par谩metro formal '__lzcnt'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(93): error C2082: nueva definici贸n del par谩metro formal '__lzcnt16'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(94): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(95): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(95): error C2082: nueva definici贸n del par谩metro formal '__movsb'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(96): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(97): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(97): error C2082: nueva definici贸n del par谩metro formal '__movsd'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(98): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(99): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(99): error C2082: nueva definici贸n del par谩metro formal '__movsw'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(100): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(101): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(101): error C2082: nueva definici贸n del par谩metro formal '__nop'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(102): error C2082: nueva definici贸n del par谩metro formal '__nvreg_restore_fence'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(103): error C2082: nueva definici贸n del par谩metro formal '__nvreg_save_fence'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(104): error C2082: nueva definici贸n del par谩metro formal '__outbyte'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(105): error C2082: nueva definici贸n del par谩metro formal '__outbytestring'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(106): error C2082: nueva definici贸n del par谩metro formal '__outdword'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(107): error C2082: nueva definici贸n del par谩metro formal '__outdwordstring'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(108): error C2082: nueva definici贸n del par谩metro formal '__outword'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(109): error C2082: nueva definici贸n del par谩metro formal '__outwordstring'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(110): error C2082: nueva definici贸n del par谩metro formal '__readcr0'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(111): error C2082: nueva definici贸n del par谩metro formal '__readcr2'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(112): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(113): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(113): error C2082: nueva definici贸n del par谩metro formal '__readcr3'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(114): error C2082: nueva definici贸n del par谩metro formal '__readcr4'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(115): error C2082: nueva definici贸n del par谩metro formal '__readcr8'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(116): error C2082: nueva definici贸n del par谩metro formal '__readdr'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(125): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(126): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(126): error C2082: nueva definici贸n del par谩metro formal '__readmsr'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(127): error C2082: nueva definici贸n del par谩metro formal '__readpmc'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(128): error C2082: nueva definici贸n del par谩metro formal '__segmentlimit'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(129): error C2082: nueva definici贸n del par谩metro formal '__sidt'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(131): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(133): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(133): error C2082: nueva definici贸n del par谩metro formal '__stosb'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(134): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(135): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(135): error C2082: nueva definici贸n del par谩metro formal '__stosd'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(136): error C2082: nueva definici贸n del par谩metro formal '__inline__'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(137): error C2143: error de sintaxis: falta ';' delante de 'tipo'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(137): error C2082: nueva definici贸n del par谩metro formal '__stosw'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(138): error C2082: nueva definici贸n del par谩metro formal '__svm_clgi'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(139): error C2082: nueva definici贸n del par谩metro formal '__svm_invlpga'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(140): error C2082: nueva definici贸n del par谩metro formal '__svm_skinit'
c:\bcc770_64\INCLUDE\windows\crtl\intrin.h(140): fatal error C1003: el recuento de errores supera 100; se detiene la compilaci贸n
hbmk2[test64]: Error: Running C/C++ compiler. 2
cl.exe -nologo -c -O1 -Ic:\bcc770_64\INCLUDE\windows\crtl -Ic:\bcc770_64\INCLUDE\windows\sdk -W4 -wd4127 -FoC:\Users\leandro\AppData\Local\Temp\65\hbmk_8ukx4k.dir\ -Ic:\har_msvc22_64\include -Ic:\fwh64_2409\include -Ic:\har_msvc22_64\contrib\xhb -Ic:\har_msvc22_64\contrib\hbct -Ic:\har_msvc22_64\contrib\hbtip -Ic:\har_msvc22_64\contrib\hbfship -Ic:\har_msvc22_64\contrib\hbxpp -Ic:\har_msvc22_64\contrib\hbwin -Ic:\har_msvc22_64\contrib\hbmzip -Ic:\har_msvc22_64\contrib\hbfoxpro C:\Users\leandro\AppData\Local\Temp\65\hbmk_8ukx4k.dir\test.c
"test.exe" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
C:\cmplar_mv_64>Aqui ha funcionado bien en el primer intento
Tal vez se trate de un hbmk2.exe da帽ado (?) 贸 prueba a cerrar la ventana cmd y abrir una nueva: tal vez este leyendo alguna variable de entorno de alguna prueba anterior...
El fallo se origina en esta llamada:
cl.exe -nologo -c -O1 -Ic:\bcc770_64\INCLUDE\windows\crtl -Ic:\bcc770_64\INCLUDE\windows\sdk ...
Por alguna raz贸n le esta dando el path de los includes de Borland
Tal vez se trate de un hbmk2.exe da帽ado (?) 贸 prueba a cerrar la ventana cmd y abrir una nueva: tal vez este leyendo alguna variable de entorno de alguna prueba anterior...Eso ya lo hab铆a intentando varias veces, hasta cambie el nombre del prg y del rc, pensando en que era eso.
Leandro,
Pienso que se puede deber a la estructura de carpetas como tengas instalado Harbour:
Lo tienes asi ?
c:\harbour\bin\win\msvc64\hbmk2.exe
Antonio buenas tardes, gracias por responder
Volvimos a descargar el harbour y logramos superar el inconveniente.
Ya compilamos la app, se genera el ejecutable y est谩 trabajando parcialmente, hay varias cosas que no andan como debe ser, antes funcionaba con borland y xharbour, pero... voy a crear un post nuevo para informar sobre la situaci贸n.