Hace rato andaba dando vueltas con un tema que nunca pude resolver: Como hacer que un programa de signos de vida durante una larga rutina en C sin alterar la velocidad de calculo.
C es 100 veces mas rapido que gambas y puede acelerar un programa que requiera, en algunos momentos, mucho procesamiento. Gracias al bueno de Benoit, gambas permite ser llamado desde "afuera", o sea desde otro programas no-Gambas o librerias. A modo de ayuda-memoria, lo explico:
Modulo con las declaraciones de la libreria C
Library "matrix8" ' libreria externa en C
' Rutina que resuelve un sistea de ecuaciones con el metodo de Gauss
' al final de los argumentos, especifico la funcion de gambas que la libreria C va a llamar cada tanto para dar informacion de como va el proceso
' se declara como Pointer
Public Extern M8gauss(mfMatriz As Float[], vfIncognitas As Float[], vfTerminosInd As Float[], lOrden As Long, CallbackFunction As Pointer) As Long
' Rutina que resuelve un sistea de ecuaciones con el metodo de Gauss
' al final de los argumentos, especifico la funcion de gambas que la libreria C va a llamar cada tanto para dar informacion de como va el proceso
' se declara como Pointer
Public Extern M8gauss(mfMatriz As Float[], vfIncognitas As Float[], vfTerminosInd As Float[], lOrden As Long, CallbackFunction As Pointer) As Long
Rutina que sera llamada desde C
Tipica llamada
...
resultado = modLibMatrix8.M8gauss(matrigest, vecdez, vecterind, modestru.ordmatrig, Porcentaje)
...
resultado = modLibMatrix8.M8gauss(matrigest, vecdez, vecterind, modestru.ordmatrig, Porcentaje)
...
Parte de la rutina en C