Itamar,
Estou tentado debugar este teste:
Eu até consigo gerar o executável e rodar ele. mas quando faço o build para debug não acontece nada.
Segue o código que eu estou tentando testar:
O hbp:
#
# $Id$
#
-3rd=hbide_version=1.0
-3rd=hbide_title=demo
-3rd=hbide_workingfolder=D:/Harbour/h-Asort
-3rd=hbide_output=demo
# Autor : Alexandre Simäes
# VersÆo : 1.0
# Data : 20/08/2015
# Harbour : Harbour 3.4.0dev
# http://harbour-project.org/
# Compilador: MinGW GNU C 5.1 (32-bit)
# ---------------------------------------------------------------------------------
# Nome do Execut vel
# ---------------------------------------------------------------------------------
# -o<outname> Diretiva para nome de arquivo de sa¡da
-odemo
# ---------------------------------------------------------------------------------
# Bibliotecas
# ---------------------------------------------------------------------------------
# l<libname> Diretiva para linkar com a biblioteca <libname>. <libname> deve omitir
# path, extensÆo e o prefixo 'lib' (… menos que fa‡a parte do nome-de-arquivo).
-lhwgui
-lprocmisc
-lgtwvg
-lgtwvt
-lhbct
-lhbwin
-lhbnf
-lxhb
-lhbblink
-lhbmemio
-lhbhpdf
-llibhpdf
-lpng
-lhbzebra
-lhbwin
-lversion
hbmisc.hbc
hbwin.hbc
# ---------------------------------------------------------------------------------
# Caminhos dos Includes
# ---------------------------------------------------------------------------------
# -i<p>|-incpath=<p> paths adicionais para pesquisa de arquivos headers
-incpath=\hb32fork\hwgui\include;
# ---------------------------------------------------------------------------------
# Caminho da Lib HPROC E HGAC
# ---------------------------------------------------------------------------------
# -L<libpath> path adicional para pesquisar por bibliotecas
-L\hb32fork\hwgui\lib;lib;
# ---------------------------------------------------------------------------------
# Outros Parƒmetros
# ---------------------------------------------------------------------------------
# .\OBJ\ Grava os arquivos .c e .o na subpasta OBJ
# ---------------------------------------------------------------------------------
# -workdir=<dir> Working directory
# Diretiva para diret¢rio de trabalho da compila‡Æo.
# (default: .hbmk/plat/comp in incremental mode, OS temp
# directory otherwise).
-workdir=.\OBJ\
-gtgui
# ---------------------------------------------------------------------------------
# -[no]head[=<m>] Control source header parsing (in incremental build mode)
# <m> can be: native (uses compiler to extract
# dependencies), full (default, uses simple text parser on
# the whole file), dep, off.
-head=full
# ---------------------------------------------------------------------------------
# /n[<type>] No implicit starting procedure
# <type>: 0=no implicit starting procedure
# 1=no starting procedure at all
# 2=add starting procedure if necessary
-n
# ---------------------------------------------------------------------------------
# -[no]warn[=lev] Define o n¡vel de avisos (warnings) do compilador C
# <lev> pode ser: max, yes, low, no, def (padrão: yes).
-warn=no
# ---------------------------------------------------------------------------------
# -inc Habilita o modo de compilaçao incremental.
-inc
# ---------------------------------------------------------------------------------
# -[no]debug Adicionar/excluir informa‡äes de debug do compilador C.
# Para compilar com Harbour utilize a op‡Æo -b como de
# costume.
#-b
# ---------------------------------------------------------------------------------
# -d<diretiva> Diretiva de compila‡Æo para ifdef
-dHARBOUR
-dVERSAO_ADOH
# ---------------------------------------------------------------------------------
# -icon=<file> Seta o ícone para o aplicativo. <file> deve possuir um
# formato compat¡vel com a plataforma de destino.
# Diretiva para informar o icone da aplicação.
#-icon=P:\GERAL\HARBOUR\HARB_WIN.ICO
# ---------------------------------------------------------------------------------
# /u[<file>] Usa comando def set em <arquivo> (ou nenhum)
# Diretiva para carregar arquivo header (.ch) para toda
# aplicação.
-u+hbcompat.ch
-mt
# ---------------------------------------------------------------------------------
# Prg(s) e Rc(s)
# ---------------------------------------------------------------------------------
DEMO.PRG
asort2.c
# ---------------------------------------------------------------------------------
O fonte: demo.prg
#include "wvtwin.ch"
#include "hbcompat.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "wvgparts.ch"
#include "dbinfo.ch"
#include "fileio.ch"
#include "hbdyn.ch"
Procedure Main
local ii := hb_secondsCPU()
aSort( AFill( Array( 50000 ), 0 ),,, {|x,y| x > y } )
? hb_secondsCPU() - ii, "sec."
ii := hb_secondsCPU()
aSort2( AFill( Array( 50000 ), 0 ),,, {|x,y| x > y } )
? hb_secondsCPU() - ii, "sec."
hwg_MsgInfo(NomeExecutavel())
Inkey(0)
Return
INIT FUNCTION AppSetup()
ANNOUNCE hwg_ErrSys
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT("PT")
HB_CDPSELECT( "PT850" )
SETMODE(25,80)
SetColor("W+/B")
CLS
SetColor("W+/B")
IniciaJanela()
RETURN Nil
FUNCTION IniciaJanela(nLi,nCi,nLf,nCf)
LOCAL oCrt
HB_Default(@nLi,0)
HB_Default(@nCi,0)
HB_Default(@nLf,MaxRow())
HB_Default(@nCf,MaxCol())
cTituloJanela:="Teste com ASORT"
HB_gtInfo(HB_GTI_FONTNAME, "Lucida Console")
HB_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
HB_gtInfo(HB_GTI_ICONFILE, "P:\GERAL\HARBOUR\HARB_WIN.ICO" )
HB_gtInfo(HB_GTI_CLOSABLE, .F. )
HB_gtInfo(HB_GTI_ISGRAPHIC, .T. )
HB_gtInfo(HB_GTI_STDERRCON, .T. )
HB_gtInfo(HB_GTI_COMPATBUFFER, .T. )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_SHOWWINDOW, SW_NORMAL )
HB_GtInfo( HB_GTI_MAXIMIZED, .T. )
RETURN Nil
FUNCTION HB_GTSYS()
REQUEST HB_GT_WVT_DEFAULT
REQUEST HB_GT_WVT
REQUEST HB_GT_WGU
REQUEST HB_GT_WVG
RETURN Nil
#pragma BEGINDUMP
#pragma comment( lib, "shell32.lib" )
#include "hbapi.h"
#include <windows.h>
HB_FUNC( _OPENHELPFILE )
{
HINSTANCE hInst;
LPCTSTR lpPath = (LPTSTR) hb_parc( 1 );
LPCTSTR lpHelpFile = (LPTSTR) hb_parc( 2 );
hInst = ShellExecute( 0, "open", lpHelpFile, 0, lpPath, SW_SHOW );
hb_retnl( (LONG) hInst );
return;
}
#pragma ENDDUMP
#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
HB_FUNC( GETFILEVERSIONINFO )
{
char * szFile = hb_parc( 1 );
UINT uAction = HB_ISNUM( 2 ) ? hb_parni( 2 ) : 1;
DWORD dwHandle = 0;
DWORD dwSize = GetFileVersionInfoSize( szFile, &dwHandle );
char * szOut = NULL;
BOOL bOk = FALSE;
if( dwSize )
{
char * szBlock = ( char * ) hb_xgrab( 255 );
char * szSubBlock = ( char * ) hb_xgrab( 255 );
HGLOBAL hMem = GlobalAlloc( GMEM_MOVEABLE, dwSize );
VS_FIXEDFILEINFO * vsInfo;
UINT nLen = 0;
if( hMem )
{
LPVOID pMem = GlobalLock( hMem );
if( pMem && GetFileVersionInfo( szFile, dwHandle, dwSize, pMem ) )
{
if( VerQueryValue( pMem, "\\VarFileInfo\\Translation", ( LPVOID * ) &vsInfo, &nLen ) )
{
*( LPDWORD ) vsInfo = MAKELONG( HIWORD( *( LPDWORD ) vsInfo ), LOWORD( *( LPDWORD ) vsInfo ) );
sprintf( szBlock, "\\StringFileInfo\\%08lx\\", *( LPDWORD )( vsInfo ) );
switch( uAction ) {
case 1:
sprintf( szSubBlock, "%s%s", szBlock, "Comments" );
break;
case 2:
sprintf( szSubBlock, "%s%s", szBlock, "CompanyName" );
break;
case 3:
sprintf( szSubBlock, "%s%s", szBlock, "FileDescription" );
break;
case 4:
sprintf( szSubBlock, "%s%s", szBlock, "FileVersion" );
break;
case 5:
sprintf( szSubBlock, "%s%s", szBlock, "InternalName" );
break;
case 6:
sprintf( szSubBlock, "%s%s", szBlock, "LegalCopyright" );
break;
case 7:
sprintf( szSubBlock, "%s%s", szBlock, "LegalTrademarks" );
break;
case 8:
sprintf( szSubBlock, "%s%s", szBlock, "OriginalFilename" );
break;
case 9:
sprintf( szSubBlock, "%s%s", szBlock, "PrivateBuild" );
break;
case 10:
sprintf( szSubBlock, "%s%s", szBlock, "ProductName" );
break;
case 11:
sprintf( szSubBlock, "%s%s", szBlock, "ProductVersion" );
break;
case 12:
sprintf( szSubBlock, "%s%s", szBlock, "SpecialBuild" );
break;
}
if( VerQueryValue( pMem, szSubBlock, ( LPVOID * ) &szOut, &nLen ) )
bOk = TRUE;
hb_xfree( szBlock );
hb_xfree( szSubBlock );
}
GlobalUnlock( hMem );
GlobalFree( hMem );
}
}
}
if( bOk )
hb_retc( szOut );
else
hb_retc( "" );
}
static void s_doEvents( void )
{
MSG msg;
while( PeekMessage( &msg, ( HWND ) NULL, 0, 0, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
};
}
HB_FUNC( HBG_DOEVENTS )
{
s_doEvents( );
}
#pragma ENDDUMP
FUNCTION NomeExecutavel(lPath)
LOCAL nPos, cRet
If Empty(lpath)
nPos:=RAT(HB_PS(), HB_Argv(0))
cRet:=SubStr(HB_Argv(0), nPos+1)
else
cRet:=HB_Argv(0)
endif
RETURN cRet
Imagens da execução fica em Initing... e não sai disto.
https://goo.gl/photos/Wqt4d4pkooakxS5cAhttps://goo.gl/photos/9PZ4D7rZqdY53wu37