a ver, creo que ya lo tengo,
espero que os sirva, y sea de gran utilidad (lo es, seguro)
en primer lugar debemos crear un programa en C (el cual, va a ser la función que llamemos desde el
gambas)
utilizar un editor cualquiera (kwrite es el que suelo utilizar)
// 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 c. , y lo guardamos como factorial.c
ahora vamos a crear un libreria compartida, para acceder desde el
gambas
desde consola
compilamos el programa 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 libreria que vayáis a crear por "lib", de esta manera el linux, entiende que es una librería
gcc shared -W1,-soname,libfactorial.so.1 -o libfactorial.so.1.0 factorial.o
aparecerá libfactorial.so
ahora creamos enlace simbólico a libfactorial.so
ln -s libfactorial.1.0 libfactorial.so.1
ln -s libfactorial.so.1 libfactorial.so
ya tenemos la biblioteca creada, ahora nos falta crear el programa en
gambas que realice la comunicación con esta función C
con library introducimos el path de la biblioteca
(yo la he credo en el escritorio, cuidado con los enlaces simbolicos, como consejo, es preferible que la metais en el directorio lib de linux, de esta manera, creais una carpeta con "mislibrerias" en lib, y asi podeis acceder desde cualquier aplicacion, sea creada con cualquier lenguaje, siempre que permita obtener datos externos, claro)
.
esta linea , solo indica que es una funcion externa, que posee un parmetro long, y el resultado de esta, estara apuntando a un puntero Pointer
esto simplemente es la llamada a la función factorial en c, y la devolución del resultado en in label1.text
y con esto y un bizcocho...
espero que tenga utilidad, y vosotros aportéis cosas, como por ejemplo, variables de librerías ya creadas , que se puedan acceder mediante este ide de
gambas.
la funcionalidad es muy grande, ya que se pueden obtener datos en
gambas, de rutinas que necesiten muchos cálculos y tiempo, y con el
gambas recoger los resultados, de esta manera, la limitación de velocidad del
gambas, se puede bordear.
Un saludo