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

-
Android
- Crear aplicaciones Android con App Build Environment y Eclipse, Android SDK, Pho
- Programar aplicaciones Android en Linux (Eclipse/Android SDK/PhoneGap)
- Crear aplicaciones Android desde Eclipse y PhoneGap (Ubuntu)
- Programar Android en Linux, con Eclipse y PhoneGap
- Android Ahora Puede Ejecutar Debian Linux en Tu Teléfono
- Google comienza a añadir funciones de bloqueo antirrobo a los teléfonos Android
- Cómo conectar Linux y Android y por qué deberías hacerlo
- Scrcpy: muestra y controla tu dispositivo Google Android a través del escritorio Linux
- Cómo instalar y utilizar Android Debug Bridge (adb) en Linux
- Eliminar el software espía de su teléfono puede resultar complicado. Estas son tus mejores opciones
- Android 14 Preview 1 está disponible, prohibirá oficialmente la instalación de aplicaciones antiguas
- Android 13 puede ejecutar Windows 10, 11 y distros Linux en el móvil.
- Samsung puede descontinuar los teléfonos inteligentes Galaxy Note de gama alta
- El nuevo procesador Snapdragon 888 de Qualcomm impulsará los buques insignia de Android de 2021
- Google lanza Android Enterprise Essentials dirigido a pymes