LinuxParty
NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
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

-
Programación
- Google dona Windowbuilder, CodePro Para Eclipse
- 12 plugins de Eclipse que todo desarrollador debe conocer!
- Eclipse Ajax Toolkit Framework y Ajax tools
- Visual Studio y Eclipse, comparados y contrastados.
- Crear servicios Web con PHP en Eclipse
- Programar y depurar en un IDE para PHP con Eclipse, plugins PDT, xdebug y Remote debug
- Saros, plugin de Eclipse para programación par a distancia o distribuida en pare
- Desarrollar una aplicación Facebook con Eclipse.
- Instalar Cobol en Eclipse para Linux (y también sirve para Windows)
- Cómo instalar Eclipse en Windows, Linux o Mac.
- ¿Puede TrapC solucionar problemas de seguridad de memoria en C y C++?
- Un EXE de 27 años se convirtió en Python en minutos. ¿Será la ingeniería inversa asistida por IA el próximo paso?
- Google informa que el tiempo de migración de código se reduce a la mitad con ayuda de IA
- ELIZA, el primer chatbot con inteligencia artificial del mundo, resucita después de 60 años
- Tutorial de C/C++, programar paso a paso, para Linux, Windows y Mac