the error is strange, since I've taken a old app, I've compiled latest version with FWH xhb.com 11.03 and works fine, but now I'm developing application that fails, I have no third party libraries or classes FWH changes , no extra code. I have two days with this problem and I can not figure it out.
I have functions PALBMPLOAD (used in TBITMAP CLASS) and LOADBITMAP (BRUSH CLASS) both return zero
Compiled con xharbour last version all work ok.
FUNCTION Main()
聽 聽LOCAL oBrush, oFont
聽 聽oApp := TApplication():New()
聽 聽IF !Main_Configure()
聽 聽 聽 RETURN
聽 聽ENDIF
聽 聽IF !Acceso()
聽 聽 聽 Main_Close()
聽 聽 聽 RETURN
聽 聽ENDIF
聽 聽DEFINE BRUSH oBrush NAME "BM_FONDO2"
?oBrush:hBrush // fwh xhb return zero, i verify what bitmap "BM_FONDO2" is include in the exe
聽 聽DEFINE FONT 聽oFont 聽NAME GetDefaultFontName() SIZE 0, GetDefaultFontHeight()
聽 聽DEFINE WINDOW oApp:oMainWnd 聽 ;
聽 聽 聽 FROM 1, 1 TO 600, 800 聽 聽 聽;
聽 聽 聽 TITLE "Sistema de control - CREDICOM, version 1.1a" ;
聽 聽 聽 ICON 聽GetIcon() 聽 聽 聽 聽 聽 聽;
聽 聽 聽 BRUSH oBrush
聽 聽 聽 DEFINE MSGBAR oApp:oMsgBar OF oApp:oMainWnd PROMPT "KDSoft(c), Managua, Agosto 2011" 2010
聽 聽 聽 DEFINE MSGITEM oApp:aoItemsMsgBar[ IMB_INFO_CONN 聽] OF oApp:oMsgBar PROMPT oApp:InfoConn() 聽SIZE 330 COLOR CLR_BLUE, NIL
聽 聽 聽 DEFINE MSGITEM oApp:aoItemsMsgBar[ IMB_INFO_UTYPE ] OF oApp:oMsgBar PROMPT oUser:cUserType 聽SIZE 080 COLOR CLR_BLUE, NIL
聽 聽 聽 DEFINE MSGITEM oApp:aoItemsMsgBar[ IMB_INFO_UID 聽 ] OF oApp:oMsgBar PROMPT oUser:cUserAlias SIZE 100 COLOR CLR_BLUE, NIL
聽 聽 聽 oApp:oMsgBar:KeybOn()
聽 聽 聽 oApp:oMainWnd:bInit := {|| oApp:oMainWnd:SetFont( oFont ), ShowMenu() }
聽 聽ACTIVATE WINDOW oApp:oMainWnd MAXIMIZED VALID MsgNoYes( "Desea salir de la aplicaci贸n?", "Seleccione" )
聽 聽Main_Close()
RETURN NIL
/*-------------------------------------------------------------------------------------------------*/
#include "credicom.ch"
/*-------------------------------------------------------------------------------------------------*/
GLOBAL EXTERNAL oApp, oUser
STATIC nIntentos
/*-------------------------------------------------------------------------------------------------*/
FUNCTION Acceso()
聽 聽LOCAL oDlg
聽 聽LOCAL oFnt1
聽 聽LOCAL lAcceso
聽 聽PRIVATE cAlias, cContrasena
聽 聽#ifdef __PRUEBA__
聽 聽cAlias 聽 聽 聽 := PadR( LOGIN_USERDEV, 10 )
聽 聽cContrasena 聽:= PadR( LOGIN_PASSDEV, 10 )
聽 聽#else
聽 聽cAlias 聽 聽 聽 := Space( 10 )
聽 聽cContrasena 聽:= Space( 10 )
聽 聽#endif
聽 聽lAcceso 聽 := FALSE
聽 聽nIntentos := 0
聽 聽DBSELECT "USUA"
聽 聽USUA->( OrdSetFocus( "ALIAS" ), DBGoTop() )
聽 聽DEFINE FONT oFnt1 NAME "Tahoma" SIZE 0,-12
聽 聽DEFINE DIALOG oDlg NAME "DLG_ACCESO" ICON GetIcon() FONT oFnt1
聽 聽REDEFINE BITMAP ID 301 OF oDlg NAME "BM_ACCESO" //this bitmap is not show in dialog, i verify what bitmap "BM_ACCESO" is included in the exe
聽 聽REDEFINE GET cAlias 聽 聽 聽ID 101 OF oDlg PICTURE "@!"
聽 聽REDEFINE GET cContrasena ID 102 OF oDlg
聽 聽REDEFINE BUTTON ID 201 OF oDlg ACTION IIf( lAcceso := Acceso_Validar( oDlg ), oDlg:END(), NIL )
聽 聽REDEFINE BUTTON ID 202 OF oDlg ACTION oDlg:END() CANCEL
聽 聽ACTIVATE DIALOG oDlg CENTER
聽 聽LimpiarAreas()
聽 聽RELEASE FONT oFnt1
聽 聽RELEASE cAlias, cContrasena
RETURN lAcceso
/*-------------------------------------------------------------------------------------------------*/
HB_FUNC( LOADBITMAP )
{
聽 聽#ifndef UNICODE
聽 聽 聽 #ifndef _WIN64
聽 聽 聽 聽 聽HBITMAP hBmp = LoadBitmap( ( HINSTANCE ) hb_parnl( 1 ),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 IF( HB_ISCHAR( 2 ), hb_parc( 2 ),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ( LPSTR ) MAKEINTRESOURCE( hb_parnl( 2 ) ) ) );
聽 聽 聽 #else 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 聽HBITMAP hBmp = LoadBitmap( ( HINSTANCE ) hb_parnll( 1 ),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 IF( HB_ISCHAR( 2 ), hb_parc( 2 ),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ( LPSTR ) MAKEINTRESOURCE( hb_parnl( 2 ) ) ) );
聽 聽 聽 #endif
聽 聽#else
聽 聽 聽 LPWSTR pW = AnsiToWide( ( char * ) hb_parc( 2 ) ); 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽
聽 聽 聽 HBITMAP hBmp = LoadBitmap( ( HINSTANCE ) hb_parnl( 1 ),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽IF( HB_ISCHAR( 2 ), pW,
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽( LPWSTR ) MAKEINTRESOURCE( hb_parnl( 2 ) ) ) );
聽 聽 聽 _xfree( pW );
聽 聽#endif 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽
聽 聽RegisterResource( hBmp, "BMP" );
聽 聽hb_retnl( ( unsigned long ) hBmp );
}
HB_FUNC( PALBMPLOAD ) // ( cResourceName )
{
聽 聽 #ifndef UNICODE
聽 聽 聽 聽HRSRC 聽hRes = FindResource( ( HMODULE ) GetResources(),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽IF( HB_ISCHAR( 1 ), hb_parc( 1 ), MAKEINTRESOURCE( hb_parni( 1 ) ) ),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽RT_BITMAP );
聽 聽 #else
聽 聽 聽 聽LPWSTR pW = AnsiToWide( ( char * ) hb_parc( 1 ) );
聽 聽 聽 聽HRSRC 聽hRes = FindResource( ( HMODULE ) GetResources(),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽IF( HB_ISCHAR( 1 ), pW, MAKEINTRESOURCE( hb_parni( 1 ) ) ),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽RT_BITMAP );
聽 聽 #endif 聽 聽 聽 聽 聽 聽 聽 聽
聽 聽 HANDLE hResource = IF( hRes, LoadResource( GetResources(), hRes ), 0 );
聽 聽 #ifdef UNICODE
聽 聽 聽 聽_xfree( pW );
聽 聽 #endif 聽
聽 聽 if( hRes )
聽 聽 {
聽 聽 聽 聽#ifndef __FLAT__
聽 聽 聽 聽 聽 hb_reta( 2 );
聽 聽 聽 聽 聽 hb_stornl( ( LONG ) hPalBitmapNew( 0, (LPBITMAPINFO) GlobalLock( hResource ) ), -1, 1 );
聽 聽 聽 聽 聽 hb_stornl( ( LONG ) hPalette, -1, 2 );
聽 聽 聽 聽 聽 GlobalUnlock( hResource );
聽 聽 聽 聽#else
聽 聽 聽 聽 聽 hb_reta( 2 );
聽 聽 聽 聽 聽 hb_storvnl( ( LONG ) hPalBitmapNew( 0, ( struct tagBITMAPINFO * ) hResource ), -1, 1 );
聽 聽 聽 聽 聽 hb_storvnl( ( LONG ) hPalette, -1, 2 );
聽 聽 聽 聽#endif
聽 聽 聽 聽#ifndef UNICODE
聽 聽 聽 聽 聽 FreeResource( hResource );
聽 聽 聽 聽#endif 聽
聽 聽 }
聽 聽 else
聽 聽 {
聽 聽 聽 聽hb_reta( 2 );
聽 聽 聽 聽hb_storvnl( 0, -1, 1 );
聽 聽 聽 聽hb_storvnl( 0, -1, 2 );
聽 聽 }
}
