¿Cómo construir MiniGui para xHarbour?
Previous topic  First topic  Next topic


Recordar que en el caso de usar el compilador MinGW las librerías tienen una extension .a y un prefijo Lib, en el caso de BCC32 y Pelles C tienen una extencion .lib sin prefijo.

Ejemplo: la libreria socket se llamaría:

LibSocket.a para MinGW y Harbour
LibxSocket.a para MinGW y xHarbour

Socket.lib para BCC32 y Harbour
xSocket.lib para BCC32 y xHarbour

Socket.lib para Pelles C y Harbour
xSocket.lib para Pelles C y xHarbour


El siguiente procedimiento es aplicable a todas las versiones de MiniGui.


  • Instale una versión limpia de MiniGui en cualquier directorio, supongamos c:\myMiniGui.
  • Instale el compilador C a utilizar.
  • Instale la versión del compilador xHarbour correspondiente al compilador C instalado.
  • Utilizando la opción Global Folders del menú Settings, configure los directorios de las diferentes herramientas en la pestaña correspondiente a la combinación de compiladores a utilizar.
  • Cree un proyecto en el directorio source de la MiniGui elegida con las siguientes características:
  •     Tipo: LIB
        Compilador: xHarbour
        Minigui: la que elijamos
        Rename to: xMiniGui (o xHMG para Oficial MiniGui 3.x o xOOHG para OOHG, la extensión en el nombre de la librería no es necesaria).
        Move to: myMiniGui\lib





  • Agregue TODOS los fuentes PRG y todos los fuentes C del directorio (myMiniGui\source).




  • Nota: en Oficial MiniGui 3.x es probable que nos de un error de duplicidad de la función GetDefaultPrinter cuando intentemos compilar la librería debido a que xHarbour ya tiene una función con dicho nombre y en cambio Harbour no la tiene. Para resolver este inconveniente se puede renombrar la definición de la función llamándola xGetDefaultPrinter en el modulo c_controlmisc.c, utilizando el siguiente código:
    #ifdef __XHARBOUR__
    HB_FUNC (XGETDEFAULTPRINTER)
    #else
    HB_FUNC (GETDEFAULTPRINTER)
    #endif

    También se pueden renombrar los llamados a dicha función, para que sigan invocando la función que trae MiniGui en lugar de utilizar la de xHarbour (atención: existe el riesgo de que no se comporten en igual forma). Para ello es necesario modificar el módulo h_controlmisc.prg utilizando el siguiente código:
    #ifdef __XHARBOUR__
    Local cDefaultPrinter := XGetDefaultPrinter()
    #else
    Local cDefaultPrinter := GetDefaultPrinter()
    #endif

    Si utiliza la librería REPORT.A, debe modicar además el módulo TPRINT.PRG, en el directorio \source\report, ya que contiene un llamado a dicha función.

  • Haga Build y espere hasta que compile todos los programas. Si todo está bien se habrá generado la librería xMiniGui.lib en el directorio myMiniGui\lib (recuerde que para Oficial MiniGui 3.x se llamará LibxHMG.a y para OOHG se llamará xOOHG.lib si es para BCC32 o Pelles y LibxOOHG.a si es para MinGW).


  • Para Oficial MiniGui 3.x: construya las librerías LIBcnl.a y LIBgui.a compilando con xHarbour los fuentes que se encuentran en el directorio Harbour\source de la distribución de Oficial MiniGui.


  • Si las utiliza, construya las librerías opcionales que vienen con la distribución de MiniGui a utilizar: CRYPT, EDIT, EDITEX, GRAPH, INI, REGISTRY, REPORT, HBPRINTER, etc. Estas librerías se crean con un proyecto de tipo LIB y su nombre deberá tener antepuesta la letra x, por ejemplo, la librería REPORT debará llamarse xReport y deberá residir en el directorio \LIB de MiniGui para que QPM la encuentre automáticamente. En caso de estar situadas en otra ubicación se debe utilizar la funcionalidad de inclusión de librerias externas desde la pestaña LIB de QPM.

  • QPM (QAC Based Project Manager) Version 05.05.0016

    Compilación Incremental con las tres versiones de librerías mas populares de la familia MiniGui: HMG, HMG Extended y OOHG.

    Lista de usuarios    Donar vía PayPal    Sitio del proyecto


    Powered by QPM  

    Previous topic  First topic  Next topic