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
- Thomas E. Kurtz, coinventor de BASIC, muere a los 96 años
- Profesor de informática del MIT prueba el impacto de la IA en la formación de programadores
- Lanzamiento del IDE de código abierto Qt Creator 14 con soporte para complementos basados en Lua
- Plantillas para Joomla - Episodio 1: Plantillas, marcos y clubes o no...
- Este es el mejor libro que he visto para aprender a programar en Python en castellano desde cero, gratis y online
- ¿Deberían los niños seguir aprendiendo a programar en la era de la IA?
- La 'obsolescencia' de VBScript confirmada por Microsoft y su eventual eliminación de Windows
- El Gran Debate: ¿Deberían los Modelos de Inteligencia Artificial Ser de Código Abierto?
- El lenguaje de programación BASIC cumple 60 años
- El CEO de Nvidia dice que los niños no deberían aprender a programar
- 40 años de Turbo Pascal: recuerdos del dinosaurio codificador que revolucionó los IDE
- Los lenguajes de programación más populares y dónde aprenderlos.
- Top 5 de los principales lenguajes de programación para desarrollar aplicaciones de escritorio Linux
- Qt Creator 12 lanzado con complementos de grabación de pantalla y Explorador de compiladores
- 10 sitios web para practicar problemas de programación