Differenze tra le versioni di "Scrivere una libreria esterna per verificare se una variabile di tipo stringa è nulla"

Da Gambas-it.org - Wikipedia.
 
Riga 3: Riga 3:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
 
   Dim s As String
 
   Dim s As String
Riga 13: Riga 13:
 
   If i == -1 then Print "La variabile 's' è nulla !"
 
   If i == -1 then Print "La variabile 's' è nulla !"
 
   
 
   
  '''End'''
+
  End
 
   
 
   
  '''Private''' Procedure Creaso()  <FONT Color=gray>' ''La libreria esterna in C da noi appositamente scritta''</font>
+
   
 +
Private Procedure Creaso()  <FONT Color=gray>' ''La libreria esterna in C da noi appositamente scritta''</font>
 
   
 
   
 
   File.Save("/tmp/libverifica.c", "#include <stdio.h>\n\n" &
 
   File.Save("/tmp/libverifica.c", "#include <stdio.h>\n\n" &
Riga 26: Riga 27:
 
   Shell "gcc -o /tmp/libverifica.so /tmp/libverifica.c -shared -fPIC" Wait
 
   Shell "gcc -o /tmp/libverifica.so /tmp/libverifica.c -shared -fPIC" Wait
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 19:19, 12 giu 2024

Se si vuole far verificare da una funzione di una libreria esterna, da noi scritta in C, se una variabile di tipo stringa è nulla, potremo operare come segue:

Private Extern verifica(testo As String) As Integer In "/tmp/libverifica"


Public Sub Main()

 Dim s As String
 Dim i As Integer

 Creaso()
 
 i = verifica(s)
 If i == -1 then Print "La variabile 's' è nulla !"

End


Private Procedure Creaso()   ' La libreria esterna in C da noi appositamente scritta

 File.Save("/tmp/libverifica.c", "#include <stdio.h>\n\n" &
                              "int verifica(char * s) {\n\n" &
                              "  if (s == NULL) {\n" &
                              "    return -1;\n" &
                              "  }else{\n" &
                              "    return 0;\n}\n\n}")

 Shell "gcc -o /tmp/libverifica.so /tmp/libverifica.c -shared -fPIC" Wait

End