Nuevo FWH 16.11
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Nuevo FWH 16.11
Luis,
Se lo he comentado a Rao para saber su opinión.
Centrándonos ahora en el asunto de las imágenes:
Por favor muéstrame como creas esos botones. Algo que nos dé una pista de que pueda estar sucediéndote.
Aqui las aplicaciones funcionan bien
Se lo he comentado a Rao para saber su opinión.
Centrándonos ahora en el asunto de las imágenes:
Por favor muéstrame como creas esos botones. Algo que nos dé una pista de que pueda estar sucediéndote.
Aqui las aplicaciones funcionan bien
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: Nuevo FWH 16.11
We maintain a Million rows table by name `custbig` on our localhost for the purpose of benchmarking and performance checking during our development. This table is derived from customer.dbf by copying 2000 times.Algo muy importante
Con base de datos grandes y medianas es mas rapido el manejo de MySql con ODBC que con la nueva clase de Fw para manejo directo de MySql
Ejemplo: simplemente pueden comparar y tomar tiempos, ODBC es mas de 3 veces rapido
We prepared this test program to compare the speeds of reading 1,000,000 rows from this table by ODBC (using TOdbc and TOdbcDirect classes of FWH), ADO (superior than ODBC) and FWHMYSQL.
Code: Select all
#include "fivewin.ch"
REQUEST DBFCDX
//----------------------------------------------------------------------------//
function Main()
local oODBC, oADO, oFWH
local oQry, oRsADO, oRsFWH
local nSecs, nODBCSecs, nADOSecs, nFWHSecs
local cTable := "custbig"
RDDSETDEFAULT( "DBFCDX" )
SET DELETED ON
SET DATE ITALIAN
SET CENTURY ON
FWNumFormat( "A", .t. )
? "Connecting"
oODBC := TOdbc():New( "MYSQLANSI", "gnrao", "secret" )
oADO := FW_OpenAdoConnection( "MYSQL,localhost,fwh,gnrao,secret", .t. )
FWCONNECT oFWH HOST "localhost" USER "gnrao" PASSWORD "secret" DATABASE "fwh"
nSecs := Seconds()
MsgRun( "Reading table", "ODBC", { || ;
oQry := oOdbc:Query( "SELECT * FROM custbig" ), ;
oQry:Open(), ;
oQry:RecCount() } )
nODBCSecs := Seconds() - nSecs
nSecs := Seconds()
MsgRun( "Reading Table", "ADO", { || oRsADO := FW_OpenRecordSet( oAdo, cTable ) } )
nAdoSecs := Seconds() - nSecs
MsgRun( "Reading table", "FWH-MARIADB", { || oRsFWH := oFwh:RowSet( cTable ) } )
nFwhSecs := oRsFwh:nReadSecs
XBROWSER oQry FASTEDIT SHOW SLNUM ;
TITLE "Million Rows Read in " + cValToChar( nODBCSecs ) + " by ODBC" NOMODAL
XBROWSER oRsADO FASTEDIT SHOW SLNUM ;
TITLE "Million Rows Read in " + cValToChar( nADOSecs ) + " by ADO" NOMODAL
XBROWSER oRsFWH FASTEDIT SHOW SLNUM ;
TITLE "Million Rows Read in " + cValToChar( nFWHSecs ) + " by FWH-MARIADB"
oODBC:End()
oAdo:Close()
oFwh:Close()
return nil
We can see the times taken on the Titles of the Browses.
This sample can be tried by any one on their system by changing login parameters and table name, without any additional libraries.
Summary:
Time taken for reading 1,000,000 records of custbig table from localhost.
Code: Select all
ODBC 138.17 seconds ( 2 minutes 18 seconds )
ADO 14.58 seconds
FWHMYSQL 3.78 seconds
It is pertinent to mention that TDolphin and TMySql are faster than FWHMYSQL and they take around 2.5 seconds. The difference is due to the different approach adopted by FWH and that is a conscious decision. In most cases the difference is negligible.
In case you have found out any ODBC implementation which can read the 1,000,000 row table in one second or less then kindly let us know its source and we try to learn from that.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: Nuevo FWH 16.11
Maestro Antonio
Para ir descartando sustituí FiveHC32.Lib por la de la versión 11.05 y me salia un error de una funcion en C y la cree (GDIP_DRAWTEXT) y sirvió excelente
ahora revisando la function se agregó en gdipfwh.cpp, comparando hubo cambios en el .cpp con respecto a la version 11.05.
La idea es comparar para saber de esa librería cual el el error pero para ustedes es mas facil saber que el error está por la winapi
Gracias.
Para ir descartando sustituí FiveHC32.Lib por la de la versión 11.05 y me salia un error de una funcion en C y la cree (GDIP_DRAWTEXT) y sirvió excelente
ahora revisando la function se agregó en gdipfwh.cpp, comparando hubo cambios en el .cpp con respecto a la version 11.05.
La idea es comparar para saber de esa librería cual el el error pero para ustedes es mas facil saber que el error está por la winapi
Gracias.
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql
Ing. MSc. Luis Duque
http://www.accasoft.net
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql
Ing. MSc. Luis Duque
http://www.accasoft.net
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Nuevo FWH 16.11
Estamos revisándolo
gracias
gracias
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Nuevo FWH 16.11
Luis,
Aparte de tus PRGs y de FWH, estás enlazando algo más ?
Visual Studio te da algún aviso de símbolo duplicado al enlazar ?
Aparte de tus PRGs y de FWH, estás enlazando algo más ?
Visual Studio te da algún aviso de símbolo duplicado al enlazar ?
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Nuevo FWH 16.11
Rao ha construido este espectacular ejemplo para probar que los botones en FWH 16.11 funcionan perfectamente:
Code: Select all
#include "FiveWin.ch"
function Main()
local aBmp, oWnd, n, r, c, w, h
w := ScreenWidth() - 60
h := ScreenWidth() - 100
aBmp := DIRECTORYRECURSE( "c:\fwh\bitmaps\*.*" )
r := 10
c := 0
DEFINE WINDOW oWnd
for n := 1 to 1000
@ r, c BTNBMP PROMPT cFileNoExt( aBmp[ n, 1 ] ) ;
FILE aBmp[ n, 1 ] SIZE 36,42 PIXEL OF oWnd
c += 40
if c > w
r += 45
c := 0
if r > h
EXIT
endif
endif
next n
ACTIVATE WINDOW oWnd MAXIMIZED
return nil
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Nuevo FWH 16.11
Aqui otro ejemplo similar usando gradientes.
Como se puede ver, está funcionando bien. Luego parece ser algo específico de tu aplicación, Luis.
Ha sido probado con bcc Harbour, xharbour, MSVC 32bits Harbour, MSVC 64 bits y BCC7164
Funcionando bien con todos ellos
Como se puede ver, está funcionando bien. Luego parece ser algo específico de tu aplicación, Luis.
Ha sido probado con bcc Harbour, xharbour, MSVC 32bits Harbour, MSVC 64 bits y BCC7164
Funcionando bien con todos ellos
Code: Select all
#include "fivewin.ch"
function Main()
local aBmp, oWnd, oBrush, n, r, c, w, h
w := ScreenWidth() - 70
h := ScreenHeight() - 80
aBmp := DIRECTORYRECURSE( "c:\fwh\bitmaps\*.*" )
r := 10
c := 0
DEFINE BRUSH oBrush GRADIENT { { 1, CLR_WHITE, CLR_YELLOW } }
DEFINE WINDOW oWnd BRUSH oBrush
for n := 1 to 1000
@ r, c BTNBMP PROMPT cFileNoExt( aBmp[ n, 1 ] ) ;
FILE aBmp[ n, 1 ] SIZE 48,64 PIXEL OF oWnd 2007
c += 55
if c > w
r += 70
c := 0
if r > h
EXIT
endif
endif
next n
ACTIVATE WINDOW oWnd MAXIMIZED
RELEASE BRUSH oBrush
return nil
Re: Nuevo FWH 16.11
Maestro Antonio
No he podido mostrar con un ejemplo claro porque no puedo reproducir el error
Trabajo ese tema muy normal
por otro lado
Buildh32
buildh64
No he podido mostrar con un ejemplo claro porque no puedo reproducir el error
Trabajo ese tema muy normal
Code: Select all
@268,106 BTNBMP qBtnZN File "Imagenes\Zonas.bmp" Prompt "&Zonas" PIXEL OF oDlgCli Size 26,26 Font oFontBtn ACTION TabZonas() 2007
Buildh32
Code: Select all
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 16.05 (MSVC++) May 2016 Harbour development power ³Ü
ECHO ³ (c) FiveTech,1993-2015 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
set oldpath=%path%
set oldinclude=%include%
set oldlib=%lib%
set oldlibpath=%libpath%
if exist "%ProgramFiles%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" call "%ProgramFiles%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
if "%FWDIR%" == "" set FWDIR=c:\fwhU
if "%HBDIR%" == "" set HBDIR=c:\harbour
ECHO Compiling...
@set fwh=%FWDIR%
@set hdir=%HBDIR%
@set hdirl=%hdir%\lib\vc32
del *.obj
del *.ppo
attrib %1.exe -r
%hdir%\bin\harbour otrasfun.prg /n /i%fwh%\include;%hdir%\include;%sdkdir%\include /w0 /p %2 %3 > comp.log
%hdir%\bin\harbour %1 /n /i%fwh%\include;%hdir%\include;%sdkdir%\include /w0 /p %2 %3 > comp.log 2> warnings.log
IF ERRORLEVEL 1 GOTO COMPILEERROR
@type comp.log
@type warnings.log
rem "%VCINSTALLDIR%"bin\cl -TP -W3 -c /GS- /I%hdir%\include /GA %1.c otrasfun.c
"%VCINSTALLDIR%"bin\cl -TP -W3 -c /I%hdir%\include %1.c otrasfun.c
:ENDCOMPILE
IF EXIST %1.rc IF EXIST "%VCINSTALLDIR%"bin\rc "%VCINSTALLDIR%"bin\rc -r -d__FLAT__ %1
IF EXIST %1.rc IF NOT EXIST %1.res rc -r -d__FLAT__ %1
echo %1.obj otrasfun.obj > msvc.tmp
echo %fwh%\lib\FiveH32.lib %fwh%\lib\FiveHC32.lib %fwh%\lib\libmysql32.lib >> msvc.tmp
echo %hdirl%\hbrtl.lib >> msvc.tmp
echo %hdirl%\hbvm.lib >> msvc.tmp
echo %hdirl%\gtgui.lib >> msvc.tmp
echo %hdirl%\hblang.lib >> msvc.tmp
echo %hdirl%\hbmacro.lib >> msvc.tmp
echo %hdirl%\hbrdd.lib >> msvc.tmp
echo %hdirl%\rddntx.lib >> msvc.tmp
echo %hdirl%\rddcdx.lib >> msvc.tmp
echo %hdirl%\rddfpt.lib >> msvc.tmp
echo %hdirl%\hbsix.lib >> msvc.tmp
echo %hdirl%\hbdebug.lib >> msvc.tmp
echo %hdirl%\hbcommon.lib >> msvc.tmp
echo %hdirl%\hbpp.lib >> msvc.tmp
echo %hdirl%\hbcpage.lib >> msvc.tmp
echo %hdirl%\hbwin.lib >> msvc.tmp
echo %hdirl%\hbct.lib >> msvc.tmp
echo %hdirl%\hbziparc.lib >> msvc.tmp
echo %hdirl%\hbmzip.lib >> msvc.tmp
echo %hdirl%\hbzlib.lib >> msvc.tmp
echo %hdirl%\hbpcre.lib >> msvc.tmp
echo %hdirl%\minizip.lib >> msvc.tmp
echo %hdirl%\xhb.lib >> msvc.tmp
echo %hdirl%\hbcplr.lib >> msvc.tmp
echo %hdirl%\png.lib >> msvc.tmp
echo %hdirl%\hbcomm.lib >> msvc.tmp
rem Uncomment these two lines to use Advantage RDD
rem echo %hdirl%\rddads.lib >> msvc.tmp
rem echo %hdirl%\ace32.lib >> msvc.tmp
rem echo ws2_32.lib >> msvc.tmp
echo kernel32.lib >> msvc.tmp
echo user32.lib >> msvc.tmp
echo gdi32.lib >> msvc.tmp
echo winspool.lib >> msvc.tmp
echo comctl32.lib >> msvc.tmp
echo comdlg32.lib >> msvc.tmp
echo advapi32.lib >> msvc.tmp
echo shell32.lib >> msvc.tmp
echo ole32.lib >> msvc.tmp
echo oleaut32.lib >> msvc.tmp
echo uuid.lib >> msvc.tmp
echo odbc32.lib >> msvc.tmp
echo odbccp32.lib >> msvc.tmp
echo iphlpapi.lib >> msvc.tmp
echo mpr.lib >> msvc.tmp
echo version.lib >> msvc.tmp
echo wsock32.lib >> msvc.tmp
echo msimg32.lib >> msvc.tmp
echo oledlg.lib >> msvc.tmp
echo psapi.lib >> msvc.tmp
echo gdiplus.lib >> msvc.tmp
echo winmm.lib >> msvc.tmp
echo vfw32.lib >> msvc.tmp
echo runtimeobject.lib >> msvc.tmp
echo ws2_32.lib >> msvc.tmp
echo shlwapi.lib >> msvc.tmp
echo strmiids.lib >> msvc.tmp
IF EXIST %1.res echo %1.res >> msvc.tmp
"%VCINSTALLDIR%"bin\link @msvc.tmp /nologo /subsystem:windows,5.01 /force:multiple /NODEFAULTLIB:msvcrt /machine:X86 /nxcompat:NO /Ignore:4006
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
@set path=%oldpath%
@set include=%oldinclude%
@set lib=%oldlib%
@set libpath=%oldlibpath%
@set oldpath=""
@set oldinclude=""
@set oldlib=""
@set oldlibpath=""
%1
GOTO EXIT
ECHO
rem delete temporary files
@del %1.c
@del msvc.tmp
:COMPILEERROR
@type comp.log
@type warnings.log
ECHO * Compiling 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
Code: Select all
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 16.05 - May 2016 Harbour development power ³Ü
ECHO ³ (c) FiveTech,1993-2015 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
@set oldpath=%path%
@set oldinclude=%include%
@set oldlib=%lib%
@set oldlibpath=%libpath%
if exist "%ProgramFiles%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" call "%ProgramFiles%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
if "%FWDIR%" == "" set FWDIR=c:\fwh64U
if "%HBDIR%" == "" set HBDIR=c:\harbour64
ECHO Compiling...
@set fwh=%FWDIR%
set hdir=%HBDIR%
set hdirl=%hdir%\lib\vc64
del *.obj
del *.ppo
attrib %1.exe -r
%hdir%\bin\harbour otrasfun.prg /n /i%fwh%\include;%hdir%\include;%sdkdir%\include /w0 /p /d__64__ %2 %3 > comp.log
%hdir%\bin\harbour %1 /n /i%fwh%\include;%hdir%\include /w0 /p /d__64__ %2 %3 > comp.log 2> warnings.log
IF ERRORLEVEL 1 GOTO COMPILEERROR
@type comp.log
@type warnings.log
cl -TP -W3 -O2 -c -I%hdir%\include %1.c otrasfun.c
:ENDCOMPILE
IF EXIST %1.rc rc -r -D__64__ %1
echo %1.obj otrasfun.obj > msvc.tmp
echo %fwdir%\lib\FiveH64.lib %fwdir%\lib\FiveHC64.lib %fwdir%\lib\libmysql64.lib >> msvc.tmp
echo %hdirl%\hbrtl.lib >> msvc.tmp
echo %hdirl%\hbvm.lib >> msvc.tmp
echo %hdirl%\gtgui.lib >> msvc.tmp
echo %hdirl%\hblang.lib >> msvc.tmp
echo %hdirl%\hbmacro.lib >> msvc.tmp
echo %hdirl%\hbrdd.lib >> msvc.tmp
echo %hdirl%\rddntx.lib >> msvc.tmp
echo %hdirl%\rddcdx.lib >> msvc.tmp
echo %hdirl%\rddfpt.lib >> msvc.tmp
echo %hdirl%\hbsix.lib >> msvc.tmp
echo %hdirl%\hbdebug.lib >> msvc.tmp
echo %hdirl%\hbcommon.lib >> msvc.tmp
echo %hdirl%\hbpp.lib >> msvc.tmp
echo %hdirl%\hbcpage.lib >> msvc.tmp
echo %hdirl%\hbwin.lib >> msvc.tmp
echo %hdirl%\hbct.lib >> msvc.tmp
echo %hdirl%\hbziparc.lib >> msvc.tmp
echo %hdirl%\hbmzip.lib >> msvc.tmp
echo %hdirl%\hbzlib.lib >> msvc.tmp
echo %hdirl%\hbpcre.lib >> msvc.tmp
echo %hdirl%\minizip.lib >> msvc.tmp
echo %hdirl%\xhb.lib >> msvc.tmp
echo %hdirl%\hbcplr.lib >> msvc.tmp
echo %hdirl%\png.lib >> msvc.tmp
echo %hdirl%\hbcomm.lib >> msvc.tmp
rem Uncomment these two lines to use Advantage RDD
rem echo %hdirl%\rddads.lib >> msvc.tmp
rem echo %hdirl%\ace32.lib >> msvc.tmp
rem echo ws2_32.lib >> msvc.tmp
echo kernel32.lib >> msvc.tmp
echo user32.lib >> msvc.tmp
echo gdi32.lib >> msvc.tmp
echo winspool.lib >> msvc.tmp
echo comctl32.lib >> msvc.tmp
echo comdlg32.lib >> msvc.tmp
echo advapi32.lib >> msvc.tmp
echo shell32.lib >> msvc.tmp
echo ole32.lib >> msvc.tmp
echo oleaut32.lib >> msvc.tmp
echo uuid.lib >> msvc.tmp
echo odbc32.lib >> msvc.tmp
echo odbccp32.lib >> msvc.tmp
echo iphlpapi.lib >> msvc.tmp
echo mpr.lib >> msvc.tmp
echo version.lib >> msvc.tmp
echo wsock32.lib >> msvc.tmp
echo msimg32.lib >> msvc.tmp
echo oledlg.lib >> msvc.tmp
echo psapi.lib >> msvc.tmp
echo gdiplus.lib >> msvc.tmp
echo winmm.lib >> msvc.tmp
echo vfw32.lib >> msvc.tmp
echo runtimeobject.lib >> msvc.tmp
echo ws2_32.lib >> msvc.tmp
echo shlwapi.lib >> msvc.tmp
echo strmiids.lib >> msvc.tmp
IF EXIST %1.res echo %1.res >> msvc.tmp
link @msvc.tmp /nologo /subsystem:windows,5.02 /force:multiple /NODEFAULTLIB:libc /machine:X64 /nxcompat:NO /Ignore:4006
rem link @msvc.tmp /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:msvcrt
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
@set path=%oldpath%
@set include=%oldinclude%
@set lib=%oldlib%
@set libpath=%oldlibpath%
@set oldpath=""
@set oldinclude=""
@set oldlib=
@set oldlibpath=
GOTO EXIT
ECHO
rem delete temporary files
@del %1.c
@del msvc.tmp
:COMPILEERROR
@type comp.log
ECHO * Compiling 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
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql
Ing. MSc. Luis Duque
http://www.accasoft.net
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql
Ing. MSc. Luis Duque
http://www.accasoft.net
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Nuevo FWH 16.11
Luis,
Por favor modifica el código fuente de source\winapi\dib.c de esta forma:
veamos si los ficheros de las imágenes son abiertos correctamente
Por favor modifica el código fuente de source\winapi\dib.c de esta forma:
Code: Select all
HGLOBAL DibRead( LPSTR szDibName )
{
HFILE hFile;
LONG lSize;
HGLOBAL hDib = 0;
BITMAPFILEHEADER Header;
if( hFile = ( HFILE ) _lopen( szDibName, READ ) )
{
if( hDib = ( HGLOBAL ) fwGlobalAlloc( GMEM_MOVEABLE | GMEM_DISCARDABLE,
lSize = _llseek( hFile, 0, 2 ) ) )
{
_llseek( hFile, 0, 0 );
_lread( hFile, &Header, sizeof( BITMAPFILEHEADER ) );
_hread( hFile, GlobalLock( hDib ),
lSize - sizeof( BITMAPFILEHEADER ) );
GlobalUnlock( hDib );
}
_lclose( hFile );
}
else
MessageBox( 0, "error", "error", 0 );
return hDib;
}
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Nuevo FWH 16.11
Luis,
> Al quitar los combobox o el xbrowse me elimina el error en ventanas que salen las imágenes del btnbmp mal
En las imágenes que has publicado aparece el mismo bitmap monocromo en donde debería aparecer el xbrowse
Porque se vé un bitmap en el lugar del xbrowse ? Cómo has eliminado el xbrowse ?
Usas alguna clase de FWH modificada por ti ?
Visual Studio te muestra algún warning de que hay alguna función duplicada ?
> Al quitar los combobox o el xbrowse me elimina el error en ventanas que salen las imágenes del btnbmp mal
En las imágenes que has publicado aparece el mismo bitmap monocromo en donde debería aparecer el xbrowse
Porque se vé un bitmap en el lugar del xbrowse ? Cómo has eliminado el xbrowse ?
Usas alguna clase de FWH modificada por ti ?
Visual Studio te muestra algún warning de que hay alguna función duplicada ?
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Nuevo FWH 16.11
Luis,
Los bitmaps que muestras son desde recursos ó fichero externos BMP ?
Puedes enviarnos los BMPs, RC (y RES) ? gracias
Los bitmaps que muestras son desde recursos ó fichero externos BMP ?
Puedes enviarnos los BMPs, RC (y RES) ? gracias
Re: Nuevo FWH 16.11
Maestro Antonio
1. Todos los bmp son externos
2. No he modificado ninguna clase
Ahora para poder determinar me di la tarea de comparar la version 16.10 y 16.11
WINAPI,FUNCTION Y CLASES
FiveHC32.lib(Aqui está el problema)
WINAPI (que fueron modificadas en la versión 16.11)
FUNCTION (que fueron modificadas en la versión 16.11) (no debe tener nada que ver con el error)
CLASES (que fueron modificadas en la versión 16.11) (Compile las clases como para probar y no tienen problema)
Que hice
FiveH32 y FiveHC32 son las librerias principales donde están las Clases, funciones y API
Sustituí FiveH32.lib y seguia el error
luego Sustituí FiveHC32.lib que es la que tiene las funciones y api y el error deja de salir
Lo que si no logro entender es porque en 64bits si sirve bien, pudiera ser una declación de variable o algo así no se
Enlace para las imagenes
https://www.dropbox.com/sh/ctnzxlk544ja ... AHfva?dl=0
Muchas gracias
1. Todos los bmp son externos
2. No he modificado ninguna clase
Ahora para poder determinar me di la tarea de comparar la version 16.10 y 16.11
WINAPI,FUNCTION Y CLASES
FiveHC32.lib(Aqui está el problema)
WINAPI (que fueron modificadas en la versión 16.11)
Code: Select all
color.c
HB_FUNC( ARGB2RGB )
{
#ifdef _WIN64
LONGLONG argb = hb_parnll( 1 );
#else
double argb = hb_parnd( 1 );
#endif
HB_LONG rgb;
if ( argb > 0x00ffffff )
{
rgb = ( ( ( ULONG ) argb ) & 0x00ffffff );
rgb = ( ( rgb & 0x00ff0000 ) >> 16 ) |
( ( rgb & 0x0000ff00 ) ) |
( ( rgb & 0x000000ff ) << 16 );
} else rgb = ( ULONG ) argb;
hb_retnl( rgb );
}
ctrldraw.c
// if( lstrcmp( ClassName, "MDIClient" ) == 0 ) // MDIClient
// iParentsWithCaption++;
// if( lstrcmp( ClassName, L"MDIClient" ) == 0 ) // MDIClient
// iParentsWithCaption++;
fonts.c
if( lpLogFont->lfFaceName[ 0 ] != '@' )
hb_storvc( lpLogFont->lfFaceName, -1, nFontIndex );
else
hb_storvc( lpLogFont->lfFaceName + 1, -1, nFontIndex );
gdipfwh.cpp
HB_FUNC( GDIP_COLORBRUSH )
{
hb_retptr( new SolidBrush( rgbtoclr( (ARGB) hb_parnd( 1 ) ) ) );
}
//----------------------------------------------------------------------------//
HB_FUNC( GDIP_IMAGEBRUSH )
{
Bitmap * pImage = ( Bitmap * ) hb_parptr( 1 );
hb_retptr( new TextureBrush( pImage ) );
}
//----------------------------------------------------------------------------//
HB_FUNC( GDIP_DELETEBRUSH )
{
delete ( ( Brush * ) hb_parptr( 1 ) );
}
//----------------------------------------------------------------------------//
#ifdef _WIN64
#ifdef __BORLANDC__
#define __BCC64__
#endif
#endif
HB_FUNC( GDIP_DRAWTEXT ) // hDC, cText, aRect, hFont, pBrush, nAlign )
{
HDC hDC = ( HDC ) fw_parH( 1 );
Graphics * graphics = new Graphics( hDC );
LPWSTR string = fw_parWide( 2 );
HFONT hFont = ( HFONT ) fw_parH( 4 );
Font font( hDC, hFont );
Brush * brush;
LPCSTR pStr;
int nAlign = DT_CENTER | DT_VCENTER;
BOOL bLocalBrush = FALSE;
RectF layoutRect = RectF( hb_parvnd( 3, 2 ), hb_parvnd( 3, 1 ),
hb_parvnd( 3, 4 ) - hb_parvnd( 3, 2 ), hb_parvnd( 3, 3 ) - hb_parvnd( 3, 1 ) );
if ( HB_ISPOINTER( 5 ) ) brush = ( Brush * ) hb_parptr( 5 );
else {
bLocalBrush = TRUE;
brush = new SolidBrush( rgbtoclr( (ARGB) ( HB_ISNUM( 5 ) ?
hb_parnd( 5 ) : 0x80000000 ) ) );
}
if ( HB_ISCHAR( 6 ) )
{
pStr = hb_parc( 6 );
nAlign = ( strchr( pStr, 'L' ) == NULL && strchr( pStr, 'l' ) == NULL ?
( strchr( pStr, 'R' ) == NULL && strchr( pStr, 'r' ) == NULL ? DT_CENTER : DT_RIGHT ) : DT_LEFT )
+ ( strchr( pStr, 'T' ) == NULL && strchr( pStr, 't' ) == NULL ?
( strchr( pStr, 'B' ) == NULL && strchr( pStr, 'b' ) == NULL ? DT_VCENTER : DT_BOTTOM ) : DT_TOP );
}
else if ( HB_ISNUM( 6 ) ) nAlign = ( hb_parni( 6 ) & 0x0f );
//#if defined(__BCC64__) || defined(__GNUC__)
// graphics->DrawString( string, -1, &font, layoutRect, NULL, brush );
//#else
// StringFormat sf = new StringFormat( 0, LANG_NEUTRAL );
StringFormat sf;
sf.SetAlignment( ( StringAlignment ) ( nAlign & 3 ));
sf.SetLineAlignment( ( StringAlignment ) ( nAlign >> 2 ) );
graphics->DrawString( string, -1, &font, layoutRect, &sf, brush );
//#endif
hb_xfree( string );
if ( bLocalBrush ) delete brush;
}
//----------------------------------------------------------------------------//
gdiplus.cpp
HB_FUNC( GDIP_SETWRAPTEXTUREBRUSH )
{
TextureBrush * Brush = ( TextureBrush * ) hb_parptr( 1 );
int ntype = hb_parni( 2 ) ;
if ( ntype == 0 )
Brush->SetWrapMode( WrapModeTile ) ;
if ( ntype == 1 )
Brush->SetWrapMode( WrapModeTileFlipX ) ;
if ( ntype == 2 )
Brush->SetWrapMode( WrapModeTileFlipY ) ;
if ( ntype == 3 )
Brush->SetWrapMode( WrapModeTileFlipXY ) ;
if ( ntype == 4 )
Brush->SetWrapMode( WrapModeClamp ) ;
}
//----------------------------------------------------------------------------//
text.c
HB_FUNC( DRAWTEXTEX ) // ( hDC, cText, aRect, nStyle, [hFont], [nClr], [@nRight] ) --> nHeight
HDC hDC;
HFONT hFont, hOldFont;
COLORREF nClr, nOldClr;
BOOL bColor = FALSE;
hDC = fw_parH( 1 );
if ( hb_pcount() > 4 && HB_ISNUM( 5 ) )
{
hFont = ( HFONT ) fw_parH( 5 );
hOldFont = SelectObject( hDC, hFont );
}
if ( hb_pcount() > 5 && HB_ISNUM( 6 ) )
{
bColor = TRUE;
nClr = ( COLORREF ) ( hb_parnl( 6 ) & 0xffffff );
nOldClr = SetTextColor( hDC, nClr );
}
iRet = DrawTextExW( hDC,
iRet = DrawTextExA( hDC,
if ( hOldFont ) SelectObject( hDC, hOldFont );
if ( bColor ) SetTextColor( hDC, nOldClr );
if ( hb_pcount() > 6 && HB_ISBYREF( 7 ) && ( dwStyle & DT_CALCRECT ) )
hb_storni( rct.right, 7 );
Code: Select all
imgtxtio.prg
valtostr.prg
valtostt.prg//new
CLASES (que fueron modificadas en la versión 16.11) (Compile las clases como para probar y no tienen problema)
Code: Select all
btnbmp.prg
menu.prg
pdmenu.prg
printer.prg
rpreview.prg
say.prg
tfoldex.prg
triched5.prg
window.prg
xbrowse.prg
FiveH32 y FiveHC32 son las librerias principales donde están las Clases, funciones y API
Sustituí FiveH32.lib y seguia el error
luego Sustituí FiveHC32.lib que es la que tiene las funciones y api y el error deja de salir
Lo que si no logro entender es porque en 64bits si sirve bien, pudiera ser una declación de variable o algo así no se
Enlace para las imagenes
https://www.dropbox.com/sh/ctnzxlk544ja ... AHfva?dl=0
Muchas gracias
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql
Ing. MSc. Luis Duque
http://www.accasoft.net
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql
Ing. MSc. Luis Duque
http://www.accasoft.net
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Nuevo FWH 16.11
Luis,
Puedes responderme a esta pregunta ?
> Visual Studio te muestra algún warning de que hay alguna función duplicada ?
Seguimos revisando las diferencias para saber que pueda estar sucediendote.
gracias por tu feedback
Puedes responderme a esta pregunta ?
> Visual Studio te muestra algún warning de que hay alguna función duplicada ?
Seguimos revisando las diferencias para saber que pueda estar sucediendote.
gracias por tu feedback
Re: Nuevo FWH 16.11
Maestro Antonio
Visual Studio te muestra algún warning de que hay alguna función duplicada?
no da ningún warning
lo extraño es que en 64bits se comporta bien con Visual Studio, voy a ver si hago unas pruebas con Borland c 7
Gracias
Visual Studio te muestra algún warning de que hay alguna función duplicada?
no da ningún warning
lo extraño es que en 64bits se comporta bien con Visual Studio, voy a ver si hago unas pruebas con Borland c 7
Gracias
Fivewin 16.11
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql
Ing. MSc. Luis Duque
http://www.accasoft.net
Harbour 3.2.0
Visual Studio 2015 community
MariaDb/MySql
Ing. MSc. Luis Duque
http://www.accasoft.net