<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://www.gambas-it.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=217.72.77.12</id>
	<title>Gambas-it.org - Wikipedia - Contributi dell&amp;#039;utente [it]</title>
	<link rel="self" type="application/atom+xml" href="https://www.gambas-it.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=217.72.77.12"/>
	<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php/Speciale:Contributi/217.72.77.12"/>
	<updated>2026-10-23T11:17:20Z</updated>
	<subtitle>Contributi dell&amp;#039;utente</subtitle>
	<generator>MediaWiki 1.39.15</generator>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Extern:_richiamare_funzioni_esterne_a_Gambas&amp;diff=4889</id>
		<title>Extern: richiamare funzioni esterne a Gambas</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Extern:_richiamare_funzioni_esterne_a_Gambas&amp;diff=4889"/>
		<updated>2012-04-07T10:01:43Z</updated>

		<summary type="html">&lt;p&gt;217.72.77.12: /* Introduzione */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thess,Sorry about that rotten meal! And the meakrt! That photo is outstandin, though. I love masks, and I find this image very engaging. Your story reminds me of the James Joyce short story &amp;quot;Araby.&amp;quot; Thanks for stopping by this a.m.&lt;br /&gt;
&lt;br /&gt;
===Esempi pratici===&lt;br /&gt;
&lt;br /&gt;
Mostriamo appresso un esempio pratico utilizzando una funzione ''esterna'' di ALSA{[[#Note|2]]}.&lt;br /&gt;
&lt;br /&gt;
1) Il ''quid'':&lt;br /&gt;
vogliamo far sì che il nostro applicativo si connetta con ALSA o con un client;&lt;br /&gt;
&lt;br /&gt;
2) per ottenere questo risultato sappiamo che è necessario richiamare una &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;specifica, particolare&amp;lt;/span&amp;gt; funzione ''esterna'' di ALSA:&lt;br /&gt;
''&amp;lt;Font Color= #B22222&amp;gt;int snd_seq_connect_to(snd_seq_t *seq, int my_port, int dest_client, int dest_port)''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;Questa funzione va così interpretata:&lt;br /&gt;
&amp;lt;BR&amp;gt;- ''&amp;lt;Font Color= #B22222&amp;gt;int''&amp;lt;/font&amp;gt; : vuol dire che ritorna un valore integer;&lt;br /&gt;
&amp;lt;BR&amp;gt;- ''&amp;lt;Font Color= #B22222&amp;gt;snd_seq_connect_to''&amp;lt;/font&amp;gt; : è la funzione in sé;&lt;br /&gt;
&amp;lt;BR&amp;gt;- ''&amp;lt;Font Color= #B22222&amp;gt;(snd_seq_t *seq, int my_port, int dest_client, int dest_port)''&amp;lt;/font&amp;gt; : sono i parametri della funzione. In questo caso: un Pointer (definito dal simbolo '''*''') e tre valori Integer (definiti da ciascun ''int'');&lt;br /&gt;
&lt;br /&gt;
In Gambas sarà così tradotta:&lt;br /&gt;
&amp;lt;BR&amp;gt;''snd_seq_connect_to(primoValore As Pointer, secondoValore As Integer, terzoValore As Integer, quartoValore As Integer) As Integer'' (quest'ultimo &amp;quot;''As Integer''&amp;quot; è ovviamente giustificato dal fatto che la funzione, come sappiamo, restituisce un valore ''integer'');&lt;br /&gt;
&lt;br /&gt;
3) il ''luogo'' ove questa funzione è contenuta: questa funzione è presente nella Libreria contenente le funzioni di ALSA: Libasound.'''so'''.2 .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il tutto, allora, sarebbe così da impostarsi:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Font Color= #006400&amp;gt;' ''Dichiarazione della Libreria contenente la funzione esterna che si intende utilizzare:''&amp;lt;/font&amp;gt;&lt;br /&gt;
 Library &amp;quot;libasound:2&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 ....&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Font Color= #006400&amp;gt;' ''Extern dichiara la funzione esterna che si intende richiamare ed utilizzare (lasciamo per comodità qui i nomi: 1°valore, etc, precedentemente usati):''&amp;lt;/font&amp;gt;&lt;br /&gt;
 Private Extern snd_seq_connect_to(primoValore As Pointer, secondoValore As Integer, terzoValore As Integer, quartoValore As Integer) As Integer&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Font Color= #006400&amp;gt;' ''Anche in questo caso la routine riceverà i valori da passare alla funzione esterna:''&amp;lt;/font&amp;gt;&lt;br /&gt;
 Public Sub chiamtaEsterna(primoVal As Pointer, secondoVal As Integer, terzoVal As Integer, quartoVal As Integer)&lt;br /&gt;
 &lt;br /&gt;
  Dim err As Integer&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Font Color= #006400&amp;gt;' ''viene praticamente richiamata ed utilizzata la funzione esterna, e le si passano i quattro valori da essa richiesti:''&amp;lt;/font&amp;gt;&lt;br /&gt;
 err = snd_seq_connect_to(primoVal, secondoVal, terzoVal, quartoVal)&lt;br /&gt;
 &lt;br /&gt;
 ......&lt;br /&gt;
 &lt;br /&gt;
 End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Altro esempio pratico:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Font Color= #006400&amp;gt;' ''Dichiarazione della Libreria contenente le funzioni esterne da utilizzare''&lt;br /&gt;
 ''(in questo esempio la libreria delle funzioni matematiche):''&amp;lt;/font&amp;gt;&lt;br /&gt;
 Library &amp;quot;libm:6&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Font Color= #006400&amp;gt;' ''Dichiarazione mediante Extern delle funzioni esterne da utilizzare:''&amp;lt;/font&amp;gt;&lt;br /&gt;
 Private Extern modf(param As Float, pp As Pointer) As Float&lt;br /&gt;
 Private Extern fmod(param1 As Float, param2 As Float) As Float&lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim pp As Pointer = Alloc(SizeOf(gb.Float))&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Font Color= #006400&amp;gt;' ''Uso delle funzioni esterne, e ne vediamo in console il risultato:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Print modf(5.123456, pp)&lt;br /&gt;
    Print fmod(5.654321, 2)&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
&lt;br /&gt;
[1] Prendiamo come esempio il rapporto fra Gambas ed il sistema sonoro ALSA. Se non si avesse la possibilità di richiamare, e quindi di utilizzare le funzioni proprie di ALSA, non sarebbe possibile ''interloquire'' con questo sistema esterno. Non sarebbe possibile gestirne le capacità, e dunque utilizzare le sue funzioni e potenzialità. L'istruzione ''Extern'' ci consente di superare questo muro, questo limite.&lt;br /&gt;
&lt;br /&gt;
[2] Gli applicativi per la gestione del Midi, presenti nella pagina &amp;quot;''Progetti degli utenti''&amp;quot; del Forum di questo portale ''Gambas-it.org'', abbondano di richiami alle funzioni esterne delle API di ALSA.&lt;/div&gt;</summary>
		<author><name>217.72.77.12</name></author>
	</entry>
</feed>