Socket - ¿Cómo construir la librería de Matteo Baccan?
Previous topic  First topic  Next topic


La librería Socket.lib (para BCC32 y PellesC) o LibSocket.a (para MinGw) sirve para poder utilizar los protocolos de comunicaciones de TCP/IP en [x]Harbour.

Esta librería fue construida por
Matteo Baccan, se la puede bajar desde http://sourceforge.net/projects/harboursocket

Generalmente, esta librería ya viene compilada en la distribución de MiniGui pero sólo para Harbour. QPM la utiliza automáticamente si la encuentra en el directorio \lib del [x]Harbour utilizado.

Lo que aquí se explica es como reconstruir dicha librería en caso de que fuera necesario.

Los fuentes que aquí se proveen fueron extraídos del sitio de Matteo que se indicó en párrafos anteriores. Al archivo SOCKET.C se le realizaron algunas modificaciones para permitir la compilación con HARBOUR 3.2 y corregir algunos warnings.

El demo que acompaña los sources fue escrito por
Grigory Filatov gfilatov@freemail.ru y fue extraído de los Samples de Extended Minigui. Fue adaptado para que funcionara con todas las miniguis.

Todos estos fuentes se pueden bajar desde este archivo: Socket.zip

Una vez que tengamos estos fuentes, solo tenemos que crear un proyecto con QPM de tipo LIB y utilizar la opcion de Rename para indicar el nombre de la librería que deberá llamarse Socket. Luego sería interesante utilizar la opcion Copy/Move para mover la libreria al directorio \Lib del Harbour o xHarbour que hayamos elegido para compilar.

Luego incluiremos todos los PRG del directorio \Source mas el fuente Socket.c de dicho directorio que deberá ir primero en la lista.



Notas:

  • Para MinGw (Minigui Oficial 3.x y OOHG 3.x)
  • .

    En el caso de MinGw, la librería resultante no se llamará Socket.lib sino LibSocket.a, es decir, se le agrega el prefijo Lib y se cambia la extension de 'lib' a 'a'.

  • Para xHarbour
  • .

    El procedimiento es el mismo que para Harbour, solamente es conveniente usar la opción de Rename para denominar xSocket.lib a la librería resultante y así diferenciarla de Socket.lib que sería el nombre de default para Harbour.
    En el caso de MinGW el nombre apropiado sería LibxSocket.a



    Luego de esto, solamente falta hacer Build del proyecto, el cual puede finalizar con warnings.

    Se puede verificar el contenido de la libreria creada mediante la pestaña Output Error/Module de QPM:



    Para compilar el demo contenido en el archivo Zip que se provee en este mismo tópico solo es necesario crear un proyecto de tipo EXE y hacer Build.
    QPM intentará incluir automaticamente la libreria Socket desde el directorio \lib del [x]Harbour utilizado.
    Note que si no se utiliza la opcion de COPY/MOVE para poner la nueva libería en dicho directorio y asi reemplazar la libreria que viene por default, es necesario agregar la libreria Socket que acabamos de crear en la lista de Librerias de QPM para poder localizarla y no olvidarnos de excluir la libreria Socket que viene por default. Estas dos acciones se realizan en la pestaña LIB de QPM:

    En algunos casos, cuando se compila con Harbour, la linkedicion del Sample va a requerir de dos funciones de OLE:
    TOLEAUTO() y OLE2TXTERROR()
    Para solucionar este tema ver el topico
    ¿Cómo construir la librería de enlace dinámico?
    En las nuevas versiones de xHarbour no sucede porque la libreria OLE paso a formar parte de la distribucion oficial.



    Este es el demo ejecutándose:




    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