Mensajes: 713
Viernes, 08 May 2020, 15:41
Por ejemplo, creando una función externa:
Library "/tmp/lib_Occorrenze"
' int Occorrenze(const char *stringa, const char *substr)
' Ritorna il numero di occorrenze di una sottostringa all'interno di una stringa.
Private Extern Occorrenze(stringa As String, substr As String) As Integer
Public Sub Main()
Dim s, su As String
Dim i As Integer
' Va a generare l'apposita libreria dinamica condivisa esterna:
CreaSo()
' La stringa è la seguente:
s = "mela pera arancia limone pera banana noce mela fico pera noce"
' La sottostringa di cui conoscere il numero di occorrenze:
su = "pera"
i = Occorrenze(s, su)
Print "Numero occorrenze della sottostringa '"; su; "': "; i
End
Private Procedure CreaSo()
' Imposta il sorgente della libreria dinamica condivisa esterna:
File.Save("/tmp/lib_Occorrenze.c", "#include <string>" &
"\n\n" &
"int Occorrenze(const char *stringa, const char *substr) {" &
"\n\n" &
" int i = 0;" &
"\n\n" &
" do {\n" &
" stringa = strstr (stringa, substr);\n" &
" if (stringa) {;\n" &
" ++stringa;\n" &
" ++i;\n" &
" }else{\n break;\n }" &
"\n }\n" &
" while (stringa);" &
"\n\n" &
" return i;\n\n}")
' Genera la libreria dinamica condivisa esterna:
Shell "gcc -o /tmp/lib_Occorrenze.so /tmp/lib_Occorrenze.c -shared -fPIC" Wait
End
Esto que hizo el topo, es EXACTAMENTE como funciona OpenGL hoy en dia:
La CPU le envia codigo C en forma de String a la GPU para que se ocupe de los graficos con su poder de procesamiento, liberando a la cpu para otras tareas. Estoy estudiando el tema para aplicarlo al CAD