La Web del Programador: Comunidad de Programadores
 
    Pregunta:  2711 - PASO A PASO COMO CREAR UNA LIBRERIA
Autor:  Iván Rodríguez Fernández
Necesito que alguien me explique paso a paso, como crear una libreria de clipper. He hecho un programa y me ocupa 5000 lineas y esta todo bien estructurado con procedimientos pero en un mismo prg.Sale que error por falta de memoria, me gustaria que me explicaran como solucionar ese problema.
Un saludo de Barcelona.

  Respuesta:  Manuel Gómez Zamorano
Una libreria se crea con la utilidad LIB.EXE de clipper, lo puedes encontrar en las NG.
El problema de falta de memoria es que tienes que dividir tu programa de 5000 lineas en un prg principal y uno o varios de funciones. Puedes linkar con el EXOSPACE o con el BLINKER.
Si quieres crearte una buena libreria es conveniente que agrupes lal funciones del mismo tipo por categorias dentro de un OBJ, y luego utilizas el LIB.EXE,
1.- escribes LIB y lo ejecutas
2.- te pedirá el nombre de la libreria (por defecto de extension LIB) que vas a crear o modificar en LIBRARY NAME.
3.- escribes :
+ fichero_obj
asi con tantos OBJ´S como quieras añadir.
4.- luego te pedira LIST FILE y si quieres le das un nombre, no es obligatorio, es un fichero que muestra como esta creada la libreria.
5.- y por ultimo OUTPUT LIBRARY : nombre de la libreria que coincide con el LIBRARY NAME y que no es obligatorio.
Y nada mas lo importante es que dividas tu programa compiles y linkes.
Espero haberte servido de ayuda.

  Respuesta:  Gregorio Cobá Gala
La solución a tu problema no es la creación de una librería si no de módulos overline y algunos artilugios de compilación y de estructuración de módulos.

Si necesitas más información de cómo hacerle, envíame un correo ...

  Respuesta:  Gerardo A. Mendoza
Hola!
Considero que tu problema no se soluciona creando una biblioteca, más bien con la aplicacion de algunas recomendaciones para un mejor uso de la memoria como:
- Utiliza variables Locales en vez de Private, Static en vez de Public. Pasa parametros a tus rutinas en vez de variables Private o Public.
- En lo posible es mejor utilizar arreglos en vez de variables. Por ejemplo para acumular tres columnas, no utilices 3 variables mejor UN arreglo de 3 posiciones.
- Declara tus funciones y procedimientos Static cuando solo se deben ver dentro del mismo .PRG.
- Utiliza los "alias" para las tablas (.dbf) con la finalidad de que utilices los mismos nombres de campo cuanda aparece en diferentes tablas. Por ejemplo en una Factura utilizas CveCliente y en el catalogo tambien debes utilizar CveCliente.
- El manejador de memoria de clipper funciona mejor con funciones y procedimientos lo mas pequeños posibles, esto por la paginacion de memoria que hace, esto es que tus rutinas no sean de 1000 lineas, estructuralas en rutinas de menos lineas.
Para hacer una libreria compilas el fuente (.PRG) y con alguna utiliria para crear rutinas como LIB.EXE que venia con QBasic, QuickC, tomas ese modulo .OBJ y creas la libreria por ejemplo para crear MiLib.LIB:
Clipper rutinas /n /m /l /w
Lib MiLib +rutinas MiLib.lst MiLib
Luego para crear la aplicacion
RTLink fi MiApp Lib MiLib

  Respuesta:  Djconde
Esta es la respuesta que amablemente Killer Blade me dio a la misma pregunta, ten en cuenta que debes tener el programa LIB.EXE de microsoft:

Claro, te explicaré cómo lo hago yo:

1) Me compilo el código fuente con la orden CLIPPER MIPROG.PRG /N /M.
Esto lo hago para que el módulo no sea un programa, sino un procedimiento (es decir, que no tenga ningún procedimiento de inicio).

2) Me copio el fichero objeto MIPROG.OBJ en el mismo directorio que la librería.

3) Ejecuto LIB MILIB +MIPROG y el programa se encarga de insertármelo en la librería. LIB te preguntará si quieres crear un fichero de listado, tú sólo pulsa Enter y ya está.

Bueno, no tengo mucho tiempo así que me despido agradeciéndote que te ofrezcas a prestarme ayuda en lo que sea. Lo mismo te digo.