FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Antonio - Duda con UNICODE y compiladores
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Antonio - Duda con UNICODE y compiladores
Posted: Tue Sep 27, 2011 03:24 PM
Antonio una duda, en fwbmp.c estan las funciones de manejo de bitmap y simlar, ademas entiendo que:

bcc es un compilador c con soporte UNICODE
xcc o poo NO es un compilador con soporte UNICODE (es correcto esto?)

si compilo con bcc estas dos funciones son incluidas, pero si compilo con xcc de xharbour.com palbmpread no es incluida por estar la compilacion condiconada por la definicion de la constante UNICODE, es correcto esto?

aun sigo a la caza del error en xharbour.com de que los brush y tbitmap en ciertas condiciones no muestran valor ya que por ejemplo PALBMPLOAD retorna un valor cero.

Code (fw): Select all Collapse
#ifndef UNICODE

HB_FUNC( PALBMPREAD ) // ( hDC, cBitmapFile ) --> aBmpPal
{
   HGLOBAL hDib = DibRead( ( char * ) hb_parc( 2 ) );

   #ifdef __XPP__
      #define hb_stornl( x, y, z ) STORNL( x, params, y, z )
   #endif

   hb_reta( 2 );
   hb_storvnl( ( LONG ) hPalBitmapNew( ( HDC ) hb_parnl( 1 ), (LPBITMAPINFO) GlobalLock( hDib ) ),
            -1, 1 );
   hb_storvnl( ( LONG ) hPalette, -1, 2 );

   GlobalUnlock( hDib );
   GlobalFree( hDib );
}

#endif

//---------------------------------------------------------------------------//

HB_FUNC( PALBMPLOAD ) // ( cResourceName )
{
    #ifndef UNICODE
       HRSRC  hRes = FindResource( ( HMODULE ) GetResources(),
                     IF( 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 );
    }
}
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Antonio - Duda con UNICODE y compiladores
Posted: Tue Sep 27, 2011 08:15 PM

Carlos,

La compilación condicional con UNICODE la usamos para FWPPC, asi que bcc tampoco la incluirá. Fijate que es un #ifndef (si no está definido).

Gracias por tu paciencia en intentar localizar esos ejemplos de uso de PalBmpLoad() :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion