FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour O.T. Alguien utiliza xDevStudio ???
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
O.T. Alguien utiliza xDevStudio ???
Posted: Tue May 29, 2012 05:40 PM

Perdón por el OT pero necesito conectarme con alguien que utilice este editor ya que me sucede algo extraño. Cuando compilo una aplicación con un archivo de recursos, en el ejecutable se encuentran los recursos menos el manifest que si se encuentra en el Rc. Si alguien sabe. Desde ya muchas gracias.

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: O.T. Alguien utiliza xDevStudio ???
Posted: Tue May 29, 2012 07:45 PM

Holá, puedes hablar directamente con el autor Vailton Renato.

renato@kssoftware.com.br

ó

http://www.fivewin.com.br

ó

https://www.facebook.com/vailton.renato

Gracias, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 302
Joined: Fri Apr 23, 2010 04:30 AM
Re: O.T. Alguien utiliza xDevStudio ???
Posted: Wed May 30, 2012 05:50 AM

Karina,

Que compilador usas ?, estas incluyendo un .rc o un .res ?

Slds

Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: O.T. Alguien utiliza xDevStudio ???
Posted: Wed May 30, 2012 11:54 AM

nnicanor, yo hice la pregunta y gracias por responder. Las herramientas que uso: Fwh 12.04, xHarbour 1.2.1 Rev. 9124, Bcc 5.82 y Pelles-C. En las aplicaciones utilizo un archivo de recursos .RC. Lo curioso es que editando el ejecutable veo todos los recursos salvo el manifest. He buscado sobre la configuración de xDevStudio pero no logro solucionarlo. Uso la última versión de xDevStudio. Alguna idea ??, desde ya muchas gracias.

Posts: 302
Joined: Fri Apr 23, 2010 04:30 AM
Re: O.T. Alguien utiliza xDevStudio ???
Posted: Wed May 30, 2012 02:13 PM
Vifique y si compila bien y funciona el manifiest, prueba quitandolo y agregandolo otraves al .rc

Yo siempre he usuado archivos .res generados directamente con Pelles que uso como editor de recursos, cuando comence a hacer pruebas con mingw tuve que pasar los recursos a .rc para debido a que los .res no son compatibles com mingw lo raro es que puedo compilar correctamente con Visual C y Mingw pero al tratar de compilar con BCC el .rc obtuve el error 35 ivalid bitmap format, sin embargo cambie en los scripts de XdevStudio el compilador de recursos de Borland por el de PellesC y compilo perfecto.

Aqui dejo mi script de XdevStudio para BCC

Code (fw): Select all Collapse
/*
 * São Paulo , 16/06/2006 @ 06:36
 * Revisado em 23/8/2006 17:00:02
 * -----------------------------
 * MiniGUI.xCompiler.prg
 *
 * Arquivo contendo os comandos de Script para processamento de um projeto
 * Harbour modo CONSOOLE com Borland BCC ou MinGW.
 */
#define CRLF Chr(13)+Chr(10)

function Prepare
   type := Project( 'TargetType' )

   if FileExists( 'harbour.exe', m_PreSetPath ) .or. ;
      FileExists( 'hb.exe', m_PreSetPath )
      *
   else
      MsgError( 'O arquivo principal do compilador não existe!' )
      return .f.
   end
    
   if !FileExists( 'bcc32.exe', m_PreSetPath )
      MsgError( 'O arquivo requerido BCC32.EXE não foi localizado no sistema!' )
      return .f.
   end
    
   if !FileExists( 'ilink32.exe', m_PreSetPath )
      MsgError( 'O arquivo requerido ILINK32.EXE não foi localizado no sistema!' )
      return .f.
   end
    
   return .t.
 
function UnPrepare
   return .t.
 
/*
 * Esta função é executada, sempre que a xDev precisar compilar um arquivo .PRG
 */ 
function OnFilePRG
 * Preparamos a linha de comando
   cmd := 'harbour.exe'
   cmd += ' "' + m_sFileName + '"'
   cmd += ' /q /o"' + m_sOutPut + '"'
   cmd += ' ' + fFlagA + ' ' + fFlagL + ' ' + fFlagM + ' ' + ; 
          ' ' + fFlagN + ' ' + fFlagZ  + ' ' + fFlagP
 *
 * Verificarmos se ele nao quer desativar o DEBUG para este módulo em específico!
 * para isto usamos a funcao SameText() que compara os 2 argumentos ignorando 
 * letras maiúsculas / minúsculas.
 * 
   if !SameText( PRG_DisableDebug, 'sim' )
      cmd += ' ' + fFlagB 
   end
       
 * Verificamos as diretrivas #DEFINEs e adicionamos ela na linha de comando!
   aDefs := Alltrim(CustomDefines) + ',' + ;   // Diretrivas gerais do projeto
            Alltrim(PRG_Defines)               // Diretrivas específicas deste arquivo 
            
   aDefs := StrTran(aDefs, ';', ',' )
   aDefs := StrTran(aDefs, ' ', '' )
   aDefs := ListAsArray( aDefs, ',')
   cmd   := alltrim( cmd )

   for i := 0 to len( aDefs )
       if !Empty(aDefs[i])
         cmd += ' /D' + aDefs[i]
       end
   next

 * Colocamos os outros parametros (se houver)
   cmd := alltrim( cmd )
   cmd += " " + fMiscOption1           
   
 * Executamos o comando específico para compilar 
   runBat(cmd)      
   
   bOk := (ErrorLevel() == 0)
   return bOk
     
/*
 * Esta função é executada, sempre que a xDev precisar compilar um arquivo .C
 */ 
function OnFileC
   
 * Preparamos a linha de comando
   aLines := {}

 * Verificamos as diretrivas #DEFINEs e adicionamos ela na linha de comando!
   aDefs := Alltrim(CustomDefines) + ',' + ;   // Diretrivas gerais do projeto
            Alltrim(PRG_Defines)               // Diretrivas específicas deste arquivo 
            
   aDefs := StrTran(aDefs, ';', ',' )
   aDefs := StrTran(aDefs, ' ', '' )
   aDefs := ListAsArray( aDefs, ',')
   cmd   := alltrim( cmd )

   for i := 0 to len( aDefs )
       if !Empty(aDefs[i])
          AAdd( aLines, '-D' + aDefs[i])
       end
   next

 * Ajustamos os outros parametros
   AAdd( aLines, '-I"' + m_PreSetInclude +'"')
   AAdd( aLines, '-L"' + m_PreSetLib + ';' +m_PreSetObj + '"')
   AAdd( aLines, '-o"' + m_sOutPut + '"')
   AAdd( aLines, '"' + m_sFileName + '"')

 * Salvamos e executamos o comando específico para compilar
   MemoWrite( 'b32.bc', aLines )
   runBat('BCC32 -M -c @B32.BC')
   
   bOk := (ErrorLevel() == 0)
   return bOk
     
/*
 * Esta função é executada, sempre que a xDev precisar compilar um arquivo .RC
 */ 
function OnFileRC  
   cmd := FindFile( 'brc32.exe', m_PreSetPath )
   
   if Empty(cmd)
      cmd := FindFile( 'porc.exe', m_PreSetPath )
   end
   
   if Empty(cmd)
      MsgError( 'Erro ao localizar o aplicativo necessário para compilar o módulo "'+m_sFileName+'"!' )
      return .f.
   end   
   
 * Preparamos a linha de comando
*   cmd += ' -r -fo"' + m_sOutPut + '" -i"' + m_PreSetInclude +'"'         // aqui cambio el compilador de recursos por el de pellesC
   cmd = 'c:\devel\C\PellesC64\bin\porc.exe -r -fo"' + m_sOutPut + '" -ic:\devel\C\PellesC64\Include\Win;c:\devel\C\PellesC64\Include' 


    * c:\devel\C\PellesC64\Include\Win
 * Verificamos as diretrivas #DEFINEs e adicionamos ela na linha de comando!
   aDefs := Alltrim(CustomDefines) + ',' + ;   // Diretrivas gerais do projeto
            Alltrim(PRG_Defines)               // Diretrivas específicas deste arquivo 
            
   aDefs := StrTran(aDefs, ';', ',' )
   aDefs := StrTran(aDefs, ' ', '' )
   aDefs := ListAsArray( aDefs, ',')
   cmd   := alltrim( cmd )

   for i := 0 to len( aDefs )
       if !Empty(aDefs[i])
          cmd += ' -D' + aDefs[i]
       end
   next

 * Ajustamos os outros parametros
   cmd += ' "' + m_sFileName + '"'  

 * Executamos o comando específico para compilar
   run (cmd)      
   
   bOk := (ErrorLevel() == 0)
   return bOk
     
function MakeFW32_BCC   
   if SameText( type, 'LIB' ) .or. ;     
      SameText( type, 'DLL' )
      MsgError( 'Arquivos *.' + type + ' não são suportados por este script (ainda)!'+;
                'Neste caso use o "Harbour 32 Bits & BCC / MinGW" para criar estes arquivos.' ;
              )
      return .F.
   end                         
   return BuildExe()

function BuildExe()   
 * Preparamos a linha de comando
   aLines  := {}

   AAdd( aLines, '-I"' + m_PreSetInclude +'" +')
   AAdd( aLines, '-L"' + m_PreSetLib + ';' +m_PreSetObj + '" +')
   
 * Usamos sempre a função SAMETEXT() pq ela compara removendo os espaços e 
 * ignorando maiúsculas e minúsculas
   if SameText( fForceCON, 'Sim' )
      *
   else
      AADD( aLines, '-aa +' )
   end
                                      
   AADD( aLines, '-Gn -Tpe -s +' )
   AADD( aLines, 'c0w32.obj +    ' )

   /*
    * Incluimos os arquivos .OBJ do projeto
    */
   aFiles := Project( "*.OBJ" )

   t := Len( aFiles )
    
   FOR i := 1 TO t
       IF i == t 
          AADD( aLines, '"'+aFiles[i]+'", + ' )
       ELSE
          AADD( aLines, '"'+aFiles[i]+'"  + ' )
       End
   End
   
   AADD( aLines, '"'+m_sOutPut + '", +   ' )
   AADD( aLines, '"'+ChangeFileExt( m_sOutPut, '.map')+'", +   ' )
   
   /*
    * Chamamos a função que pega o nome das libs corretas
    */
   DefaultLibs()
      
   AADD( aLines, 'cw32.lib +     ' )
   AADD( aLines, 'import32.lib + ' )
   AADD( aLines, 'psapi.lib +     ' )
      
   if SameText( RDD4, 'sim' )   
      AADD( aLines, 'odbc32.lib +')
   end
   
   if FileExists('nddeapi.lib', m_PreSetLib )
      AADD( aLines, 'nddeapi.lib +' )
   end
   
   if FileExists('iphlpapi.lib', m_PreSetLib )
      AADD( aLines, 'iphlpapi.lib +' )
   end
     
   if FileExists('rasapi32.lib', m_PreSetLib )
      AADD( aLines, 'rasapi32.lib +' )
   end
   
   AADD( aLines, ',' )

   /*
    * Põe os RCs do projeto 
    */
   aFiles := Project( "*.RES" )

   FOR i := 1 TO Len( aFiles )
       IF i == t 
          AADD( aLines, '"'+aFiles[i]+'" ' )
       else
          AADD( aLines, '"'+aFiles[i]+'" + ' )
       End
   End

   MemoWrite( 'b32.bc', aLines )
   runBat('ILINK32 @B32.BC')
   
   bOk := (ErrorLevel() == 0)
   /*   
    * Testamos se ele quer compactar o aplicativo gerado usando UPX
    * 22/01/2008 - 10:35:49
    */
   if bOk .and. SameText( fUseUPX, 'Sim' )
      cmd := FindFile( 'upx.exe', m_PreSetPath )

      if Empty(cmd)
         MsgError( 'Erro ao localizar o arquivo UPX.EXE necessário para compactar seu aplicativo!' )
         return .f.
      end       
      
      aLines := {}
      AADD( aLines, 'ECHO xDev TITLE UPX' )
      AADD( aLines, 'ECHO xDev FILE '+ m_sOutPut +'' )       
      AADD( aLines, 'UPX.EXE --compress-icons=0  --compress-exports=0 -9 "'+m_sOutPut + '"' )      
      
      cmd := ListAsText( aLines )  
      runBat( cmd )
              
      bOk := (ErrorLevel() == 0)
   end   
   return bOk

function DefaultLibs()

   if FileExists('sqllib.lib', m_PreSetLib )
      sql_lib := 'sqllib.lib + '
   else
      sql_lib := ApplyMacros( 'sqllib_($hV).lib + ')
   end

   if SameText( CustomLIBs, 'Sim')
      /*
       * Se ele tem a lista de LIBs personalizadas não preenchemos isto...
       */
   else

      /*
       * A SQL LIB RDD deve preceder sobre as do FW?
       */
      if !SameText( RDD1, 'sim' )
         * Ele não quer usar a SQL LIB
         
      elseif SameText( fUseSQLLIBFirst, 'sim' )
         * Sim ele quer usar e é para ter precedência!!

* AQUI COLOCO LAS LIBRERIAS DE TERCEROS
                
         AADD( aLines, 'libmysql.lib +')
         if IsHarbour()
            AADD( aLines, 'dolphinh.lib +' )
         else
            AADD( aLines, 'dolphinx.lib +' )
         end
      end   
       
      /*
       * É Harbour ou xHabour() ?
       */
       
      if SameText( RDD3, 'sim' )   
              AADD( aLines, 'hbtdbf.lib +')
      end 

      AADD( aLines, 'recur32x.lib +' )
   
* AQUI COMIENZAN LAS LIBRERIAS DE FIVEH Y HARBOUR
    
      if IsHarbour()
         AADD( aLines, 'FiveH.lib FiveHC.lib +' )
      else
         AADD( aLines, 'FiveHx.lib FiveHC.lib +' )
      end
      
      /*
       * Testamos se ele quer usar a HARBOUR.DLL se for, isto reduz o numero de LIBs
       * linkadas no projeto.
       */
       
      if SameText( fUseHBDLL, 'sim' )
         AADD( aLines, 'harbour.lib + ' )
      
         if SameText( RDD3, 'sim' )   
            AADD( aLines, 'rddads.lib +')
            AADD( aLines, 'ace32.lib +')
         end
         
         if FileExists( 'bcc640.lib', m_PreSetLib ) 
            AADD( aLines, 'bcc640.lib +   ' )
         end
         
      else
         AADD( aLines, 'rtl.lib +      ' )
         AADD( aLines, 'vm.lib +       ' )
   
         if FileExists( 'gtgui.lib', m_PreSetLib )
            AADD( aLines, 'gtgui.lib + ' )
         else
            AADD( aLines, 'gtwin.lib + ' )
         end
          
         AADD( aLines, 'lang.lib +     ' )
         AADD( aLines, 'macro.lib +    ' )
         AADD( aLines, 'rdd.lib +      ' )
         
         /*
          * Testa se o arquivo bcc640.lib existe no
          * PATH passado no segundo arqumento, neste caso m_PreSetLib
          */
         if FileExists( 'codepage.lib', m_PreSetLib ) 
            AADD( aLines, 'codepage.lib + ' )
         end
      
         AADD( aLines, 'dbfntx.lib +   ' )
         
         if SameText( RDD2, 'sim' )   
            AADD( aLines, 'dbfcdx.lib +   ' )
         end

     
         if SameText( RDD3, 'sim' )   
            AADD( aLines, 'rddads.lib +')
            AADD( aLines, 'ace32.lib +')

            
         end
             
         if FileExists( 'bcc640.lib', m_PreSetLib ) 
            AADD( aLines, 'bcc640.lib +   ' )
         end
         
         if FileExists('dbfdbt.lib', m_PreSetLib ) 
            AADD( aLines, 'dbfdbt.lib +   ' )
         end
         
         if FileExists('dbffpt.lib', m_PreSetLib ) 
            AADD( aLines, 'dbffpt.lib +   ' )
         end
         
         if FileExists('hbsix.lib', m_PreSetLib ) 
            AADD( aLines, 'hbsix.lib +    ' )
         end
      end      
   
      if !SameText( RDD1, 'sim' )
         * Ele não quer usar a SQL LIB
         
      elseif SameText( fUseSQLLIBFirst, 'sim' )
         * Já adicionamos isto lá encima.
                
      else
         AADD( aLines, 'libmysql.lib +')
         AADD( aLines, 'dolphinx.lib +' )
      end   
   
      AADD( aLines, 'common.lib +   ' )
      AADD( aLines, 'pp.lib +       ' )
      AADD( aLines, 'ct.lib +       ' )
      AADD( aLines, 'hbzip.lib +     ' )
      AADD( aLines, 'zlib.lib +     ' )
      AADD( aLines, 'pcrepos.lib +   ' )
      AADD( aLines, 'png.lib +       ' )

   end
      
   /*
    * Incluimos os arquivos .LIB no projeto
    */
   aFiles := Project( "*.LIB" )

   FOR i := 1 TO Len( aFiles )
       AADD( aLines, '"'+aFiles[i]+'" +  ' )
   End         
    
   if SameText( CustomLIBs, 'Sim')
      /*
       * Se ele tem a lista de LIBs personalizada, caimos fora!
       */
   else
      if SameText( fFlagB, '/B' )
         AADD( aLines, 'debug.lib + ' )
      end
   end
   return
Nicanor Martinez M.
Auditoria y Sistemas Ltda.
MicroExpress Ltda.
FW + FWH + XHARBOUR + HARBOUR + PELLES C + XDEVSTUDIO + XEDIT + BCC + VC_X86 + VCC_X64 + MINGW + R&R Reports + FastReport + Tdolphin + ADO + MYSQL + MARIADB + ORACLE
nnicanor@yahoo.com
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: O.T. Alguien utiliza xDevStudio ???
Posted: Wed May 30, 2012 03:06 PM

nnicanor, te agradezco muchísimo la ayuda. Cambie el RC por RES y funcionó. De todas maneras tendré en cuenta el scrip que me enviaste ya que tengo idea de cambiar a harbour y Mingw. Gracias también a karinha por su interés, Nuevamente gracias !!!
Saludos

Continue the discussion