LinuxParty
Gracias al aporte de Tururu en el foro de gambas-es.org, donde ha
explicado detalladamente, como usar librerías realizadas en C, en
nuestros programas en gambas, muchos programadores de C podrán
desarrollar sus entornos gráficos en Gambas, aprovechando las ventajas
de sendos lenguajes (simplicidad, facilidad de uso y potencia de
cálculo).
Ponemos a continuación el ejemplo de Tururu:
1) En primer lugar crearemos un programa en C (el cual, va a ser la función "factorial" que llamaremos desde gambas) Utilizar un editor cualquiera (kwrite, gvim o gedit por ejemplo)
ya tenemos el factorial en lenguaje C. , y lo guardamos como factorial.c
2) Ahora vamos a crear un librería compartida, para acceder desde nuestro programa en gambas
desde consola compilamos el programa C
$gcc -fPIC -c factorial.c
se generará un factorial.o
ahora convertimos la biblioteca compartida en libfactorial.so.1.0, de esta manera:
(Siempre debe empezar el nombre de la librería que vayáis a crear por “lib”, así Linux entenderá que es una librería)
$gcc -shared -W1,-soname,libfactorial.so.1 -o libfactorial.so.1.0 factorial.o
3) Ahora creamos enlace simbólico a libfactorial.so
$ln -s libfactorial.1.0 libfactorial.so
Todo esto lo hacemos, por ejemplo, en nuestro /home/usuario
4) Creamos un proyecto en gambas, y en el formulario "Fmain" dibujaremos una "valuebox" y un "labelbox", y escribimos el siguiente código::
Y ya está, tendremos nuestra función factorial, que se ejecuta ya compilada, y que es mucho más rápida que si lo hubiesemos escrito en Gambas (que no olvidemos es interpretado).
Como consejo de organización, Tururu nos comenta que es preferible que copiéis las librerías en el directorio lib/ de linux, de esta manera, creáis una carpeta con “mislibrerias” en lib, y así podéis acceder desde cualquier aplicación, sea creada con cualquier lenguaje, siempre que permita obtener datos externos, claro.
Finalmente Tururu nos comenta:
Que con rutinas como estas que requieren de muchos cálculos y tiempo y que tanto tarda en Gambas con este ejemplo podrías bordearlo.
Saludos

Ponemos a continuación el ejemplo de Tururu:
1) En primer lugar crearemos un programa en C (el cual, va a ser la función "factorial" que llamaremos desde gambas) Utilizar un editor cualquiera (kwrite, gvim o gedit por ejemplo)
// factorial.c
#include <stdio.h>
long factorial(long numero)
{
if (numero>0)
return numero * (factorial(numero-1));
else return 1;
}
ya tenemos el factorial en lenguaje C. , y lo guardamos como factorial.c
2) Ahora vamos a crear un librería compartida, para acceder desde nuestro programa en gambas
desde consola compilamos el programa C
$gcc -fPIC -c factorial.c
se generará un factorial.o
ahora convertimos la biblioteca compartida en libfactorial.so.1.0, de esta manera:
(Siempre debe empezar el nombre de la librería que vayáis a crear por “lib”, así Linux entenderá que es una librería)
$gcc -shared -W1,-soname,libfactorial.so.1 -o libfactorial.so.1.0 factorial.o
3) Ahora creamos enlace simbólico a libfactorial.so
$ln -s libfactorial.1.0 libfactorial.so
Todo esto lo hacemos, por ejemplo, en nuestro /home/usuario
4) Creamos un proyecto en gambas, y en el formulario "Fmain" dibujaremos una "valuebox" y un "labelbox", y escribimos el siguiente código::
'class file
LIBRARY “/home/usuario/libfactorial”
EXTERN factorial(numero AS Long) AS Pointer
PUBLIC SUB ValueBox1_KeyPress()
IF Key.code = Key.enter OR Key.code = Key.return THEN
Label1.text = factorial(ValueBox1.value)
ENDIF
END
Y ya está, tendremos nuestra función factorial, que se ejecuta ya compilada, y que es mucho más rápida que si lo hubiesemos escrito en Gambas (que no olvidemos es interpretado).
Como consejo de organización, Tururu nos comenta que es preferible que copiéis las librerías en el directorio lib/ de linux, de esta manera, creáis una carpeta con “mislibrerias” en lib, y así podéis acceder desde cualquier aplicación, sea creada con cualquier lenguaje, siempre que permita obtener datos externos, claro.
Finalmente Tururu nos comenta:
Que con rutinas como estas que requieren de muchos cálculos y tiempo y que tanto tarda en Gambas con este ejemplo podrías bordearlo.
Saludos

-
Software
- Top Ten de las innovaciones de Software Open Source.
- Real Player 11, graba todos los vídeos de Internet
- Reconocimiento Optico de Caracteres con Tesseract OCR en Ubuntu 7.04
- Cómo Instalar Linux en una PlayStation 3, (Colección de Manuales)
- GROUP-E, Software para la gestión de proyectos y trabajo en Grupo.
- Kazaa 5.0.0
- Cree un álbum de fotos con Project Zero & REST
- Instalar Ubuntu o Fedora, desde Windows.
- PDF es ahora la norma ISO 32000
- MikeOS 1.1 (Default)
- Necromancer's Dos Navigator el mejor clon del ''Norton Commander/Midnight Comman
- Usando LaTeX: Aspectos Básicos [parte I]